CN103530097B - 一种跨中间件平台的组件的实现方法和装置 - Google Patents
一种跨中间件平台的组件的实现方法和装置 Download PDFInfo
- Publication number
- CN103530097B CN103530097B CN201210229760.0A CN201210229760A CN103530097B CN 103530097 B CN103530097 B CN 103530097B CN 201210229760 A CN201210229760 A CN 201210229760A CN 103530097 B CN103530097 B CN 103530097B
- Authority
- CN
- China
- Prior art keywords
- middleware
- interface
- component
- class
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种跨中间件平台的组件的实现方法,根据业务需求设置组件接口及组件实现类;中间件平台生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类;本发明同时还公开了一种跨中间件平台的组件的实现装置,通过本发明的方案,能够实现组件接口和组件实现的分离,组件实现独立于中间件平台,在更换中间件平台时,组件实现不需要改变即可实现更换中间件平台,提升了组件应用的灵活性。
Description
技术领域
本发明涉及中间件平台技术,尤其涉及一种跨中间件平台的组件的实现方法和装置。
背景技术
目前,中间件环境下进行组件设计时,一般先根据业务需求设计组件接口,组件接口使用中间件平台提供的接口定义语言(IDL)进行设计,然后根据中间件平台提供的工具将设计的组件接口生成对应的中间件代理接口和存根代码,并将组件实现写入所述存根代码。客户端调用所述存根代码使用中间件代理接口,通过所述中间件代理接口使用组件。这种设计导致的缺点如下:
1)对于客户端应用代码使用本地组件时也需要用到中间件访问本地的服务器,这样性能上会有不必要的开销;
2)在结构上客户端和服务器端都与中间件平台绑定到一起,对于有的项目需要使用其他中间件平台时,不能适应其他中间件平台,而必须修改组件相关的全部的客户端和服务器端代码。
发明内容
有鉴于此,本发明的主要目的在于提供一种跨中间件平台的组件的实现方法和装置,提升组件应用的灵活性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供的一种跨中间件平台的组件的实现方法,该方法包括:
根据业务需求设置组件接口及组件实现类;
中间件平台生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类。
上述方案中,所述根据业务需求设置组件接口及组件实现类为:根据业务需求设置组件实现类,并使用中间件平台的IDL,描述出调用所述组件实现类所需的组件接口;所述组件实现类包括实现业务需求的软件模块。
上述方案中,所述中间件平台生成中间件接口、中间件代理类,通过中间件代理类继承组件接口,为:中间件平台通过IDL编译工具编译组件接口,产生中间件接口,并通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口。
上述方案中,所述中间件平台生成中间件实现类,通过中间件实现类引用组件接口,调用组件实现类,为:中间件平台使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类。
上述方案中,所述组件接口、组件实现类、中间件接口、中间件代理类、中间件实现类之间的调用关系为:所述中间件代理类以桥接结构连接组件接口和中间件代理类,组件接口通过中间件代理类调用中间件接口,中间件接口调用中间件实现类;中间件实现类根据中间件接口的调用,调用自身引用的组件接口;组件接口根据中间件实现类的调用,调用组件实现类。
本发明提供的一种跨中间件平台的组件的实现装置,该装置包括:设置单元和中间件平台;其中,
设置单元,用于根据业务需求设置组件接口及组件实现类;
中间件平台,用于生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类。
上述方案中,所述中间件平台包括:接口生成单元、代理类生成单元、实现类生成单元;其中,
接口生成单元,用于通过IDL编译工具编译组件接口,产生中间件接口;
代理类生成单元,用于通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口,将组件接口的接口函数与中间件接口的接口函数一一对应;
实现类生成单元,用于使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类。
本发明提供了一种跨中间件平台的组件的实现方法和装置,根据业务需求设置组件接口及组件实现类;中间件平台生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类;如此,能够实现组件接口和组件实现的分离,组件实现独立于中间件平台,在更换中间件平台时,组件实现不需要改变即可实现更换中间件平台,提升了组件应用的灵活性。
附图说明
图1为本发明提供的跨中间件平台的组件的实现方法流程的示意图;
图2为本发明实施例中组件接口、组件实现类、中间件接口、中间件代理类、中间件实现类之间的调用关系示意图;
图3为本发明提供的跨中间件平台的组件的实现装置的结构示意图。
具体实施方式
本发明的基本思想是:根据业务需求设置组件接口及组件实现类;中间件平台生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类。
下面通过附图及具体实施例对本发明做进一步的详细说明。
本发明一种跨中间件平台的组件的实现方法,如图2所示,该方法包括以下几个步骤:
步骤101:根据业务需求设置组件接口及组件实现类;
具体的,根据业务需求设置组件实现类,并使用中间件平台的IDL,描述出调用所述组件实现类所需的组件接口;所述组件实现类包括实现业务需求的软件模块。
步骤102:中间件平台生成中间件接口和中间件代理类,通过中间件代理类继承组件接口,将组件接口的接口函数与中间件接口的接口函数一一对应;
具体的,中间件平台通过IDL编译工具编译组件接口,产生中间件接口,并通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口,将组件接口的接口函数与中间件接口的接口函数一一对应。
步骤103:中间件平台生成中间件实现类,通过中间件实现类引用组件接口,调用组件实现类;
具体的,中间件平台使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类。
上述步骤102和步骤103中所述中间件平台使用的IDL工具可以是相同的,如均为ICE平台中的slice2cpp.exe程序或gSOAP平台的wsdl2h.exe程序等。
所述组件接口、组件实现类、中间件接口、中间件代理类、中间件实现类之间的调用关系如图2所示,所述中间件代理类以桥接结构连接组件接口和中间件代理类,组件接口通过中间件代理类调用中间件接口,中间件接口调用中间件实现类;中间件实现类根据中间件接口的调用,调用自身引用的组件接口;组件接口根据中间件实现类的调用,调用组件实现类。
基于上述跨中间件平台的组件的实现方法,本发明还提供一种跨中间件平台的组件的实现装置,如图3所示,该装置包括:设置单元31和中间件平台32;其中,
设置单元31,用于根据业务需求设置组件接口及组件实现类;
中间件平台32,用于生成中间件接口、中间件代理类、中间件实现类,通过中间件代理类继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;并通过中间件实现类引用组件接口,调用组件实现类。
所述中间件平台32包括:接口生成单元321、代理类生成单元322、实现类生成单元323;其中,
接口生成单元321,用于通过IDL编译工具编译组件接口,产生中间件接口;
代理类生成单元322,用于通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口,将组件接口的接口函数与中间件接口的接口函数一一对应;
实现类生成单元323,用于使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类。
本发明应用的具体实例如:在某项目中,中间件平台为gSOAP平台,根据业务功能独立于gSOAP平台设置组件接口和组件实现类,gSOAP平台生成的中间件接口为gSOAP接口,并生成相应的中间件代理类、中间件实现类;由于gSOAP接口的性能无法达到后来的业务量的需求,需要更换性能更高的ICE(Internet Communications Engine)平台时,组件接口的调用代码和组件实现类的代码都不需要改动,只需将当前gSOAP平台的中间件接口的代码、中间件代理类的代码、中间件实现类的代码重新包装为更换后的ICE平台的代码,即可实现中间件平台的迁移。这样,大大降低了代码的迁移量。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (3)
1.一种跨中间件平台的组件的实现方法,其特征在于,该方法包括:
根据业务需求设置组件接口及组件实现类;
中间件平台通过IDL编译工具编译组件接口,产生中间件接口,并通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口,并将组件接口的接口函数与中间件接口的接口函数一一对应;
中间件平台使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类;
其中,所述组件接口、组件实现类、中间件接口、中间件代理类、中间件实现类之间的调用关系为:所述中间件代理类以桥接结构连接组件接口和中间件代理类,组件接口通过中间件代理类调用中间件接口,中间件接口调用中间件实现类;中间件实现类根据中间件接口的调用,调用自身引用的组件接口;组件接口根据中间件实现类的调用,调用组件实现类。
2.根据权利要求1所述的实现方法,其特征在于,所述根据业务需求设置组件接口及组件实现类为:根据业务需求设置组件实现类,并使用中间件平台的接口定义语言(IDL),描述出调用所述组件实现类所需的组件接口;所述组件实现类包括实现业务需求的软件模块。
3.一种跨中间件平台的组件的实现装置,其特征在于,该装置包括:设置单元和中间件平台;其中,
设置单元,用于根据业务需求设置组件接口及组件实现类;
所述中间件平台包括:接口生成单元、代理类生成单元、实现类生成单元;其中,
接口生成单元,用于通过IDL编译工具编译组件接口,产生中间件接口;
代理类生成单元,用于通过IDL工具自动生成中间件代理类,修改所述中间件代理类中的继承关系为继承组件接口,将组件接口的接口函数与中间件接口的接口函数一一对应;
实现类生成单元,用于使用IDL工具生成中间件接口的实现框架代码,所述实现框架代码为中间件实现类,在所述实现框架代码中增加一个到组件接口的引用关系,使自身的实现函数对应到组件接口的实现函数,通过组件接口的实现函数调用组件实现类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210229760.0A CN103530097B (zh) | 2012-07-04 | 2012-07-04 | 一种跨中间件平台的组件的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210229760.0A CN103530097B (zh) | 2012-07-04 | 2012-07-04 | 一种跨中间件平台的组件的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530097A CN103530097A (zh) | 2014-01-22 |
CN103530097B true CN103530097B (zh) | 2018-01-30 |
Family
ID=49932143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210229760.0A Active CN103530097B (zh) | 2012-07-04 | 2012-07-04 | 一种跨中间件平台的组件的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530097B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572116A (zh) * | 2015-01-23 | 2015-04-29 | 广东能龙教育股份有限公司 | 一种基于订阅模式的中间件调用系统 |
CN105988797A (zh) * | 2015-02-12 | 2016-10-05 | 北京仿真中心 | 一种多学科设计与分析工具适配系统及方法 |
CN106569821A (zh) * | 2016-11-04 | 2017-04-19 | 青岛海信网络科技股份有限公司 | 一种生成Webservice类的方法及装置 |
CN108255545B (zh) * | 2016-12-28 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN106713478B (zh) * | 2017-01-05 | 2020-03-17 | 武汉斗鱼网络科技有限公司 | 通信处理方法及装置 |
CN108459849A (zh) * | 2017-02-22 | 2018-08-28 | 本钢板材股份有限公司 | 低配置pc终端执行远程高性能服务器上程序的设计方法 |
CN107832045B (zh) * | 2017-10-16 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 跨编程语言接口转换的方法和装置 |
CN109460222A (zh) * | 2018-11-07 | 2019-03-12 | 广州虎牙科技有限公司 | 应用程序的组件化方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1570812A (zh) * | 2003-07-18 | 2005-01-26 | 北京航空航天大学 | 组件适配器的实现方法 |
CN1749957A (zh) * | 2005-10-20 | 2006-03-22 | 北京航空航天大学 | 一种面向图形绘制引擎的io中间件装置 |
CN101335803A (zh) * | 2007-06-26 | 2008-12-31 | 三星电子株式会社 | 作业控制设备、多功能设备及其操作方法 |
CN105988797A (zh) * | 2015-02-12 | 2016-10-05 | 北京仿真中心 | 一种多学科设计与分析工具适配系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129560A1 (en) * | 2004-12-15 | 2006-06-15 | Adams Greg D | Architecture for enabling business components to access middleware application programming interfaces (APIs) in a runtime environment |
-
2012
- 2012-07-04 CN CN201210229760.0A patent/CN103530097B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1570812A (zh) * | 2003-07-18 | 2005-01-26 | 北京航空航天大学 | 组件适配器的实现方法 |
CN1749957A (zh) * | 2005-10-20 | 2006-03-22 | 北京航空航天大学 | 一种面向图形绘制引擎的io中间件装置 |
CN101335803A (zh) * | 2007-06-26 | 2008-12-31 | 三星电子株式会社 | 作业控制设备、多功能设备及其操作方法 |
CN105988797A (zh) * | 2015-02-12 | 2016-10-05 | 北京仿真中心 | 一种多学科设计与分析工具适配系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103530097A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530097B (zh) | 一种跨中间件平台的组件的实现方法和装置 | |
CN109729149A (zh) | 一种基于注解的微服务框架实现方法 | |
US9350793B2 (en) | Converged call flow and web service application integration using a processing engine | |
CN108415710B (zh) | 在智能对话开发平台上发布、调用api的方法和系统 | |
JP2009087361A (ja) | コンポーネントベースの無線アプリケーションを作成して同アプリケーションと通信するためのシステム及び方法 | |
CN106933589B (zh) | 一种基于配置的消息队列组件及其集成的方法 | |
CN104301401A (zh) | 一种基于快速服务封装的移动应用平台 | |
CN111625738A (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
CN101056429A (zh) | 通用业务系统及其实现方法 | |
CN101964797A (zh) | 一种服务交互方法及系统 | |
CN102769578A (zh) | 跨平台整合微博管理系统及方法 | |
EP2728468A1 (en) | Method for skin-changing for third-party application | |
CN108933832A (zh) | 一种实现全平台网格共享的方法 | |
CN103164207A (zh) | 基于安卓系统的跨硬件平台的应用程序开发方法和系统 | |
CN102722377B (zh) | 基于ace框架的网络视频应用处理系统 | |
CN102594859B (zh) | 一种业务数据的呈现方法、终端、服务器及系统 | |
CN106775952A (zh) | 一种安卓应用的进程管理方法和装置 | |
Tennenhouse et al. | From internet to activenet | |
CN105549964A (zh) | 页面的显示方法和系统 | |
US20110161930A1 (en) | Melding of mediation flow service component architecture (sca) components | |
CN105068820B (zh) | 一种基于SSH框架集成Axis开发并发布Web Service的方法 | |
CN112019596B (zh) | 基于消息路由配置的消息推送方法、装置和电子设备 | |
CN107391688A (zh) | 一种基于web的虚拟化网络管理平台的构建方法与装置 | |
CN202551108U (zh) | 基于socket协议的无障碍数据流通云计算系统 | |
CN105260179A (zh) | 一种实现flex与servlet交互的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |