CN107066265A - 不同编程语言的互连方法及系统 - Google Patents
不同编程语言的互连方法及系统 Download PDFInfo
- Publication number
- CN107066265A CN107066265A CN201710154350.7A CN201710154350A CN107066265A CN 107066265 A CN107066265 A CN 107066265A CN 201710154350 A CN201710154350 A CN 201710154350A CN 107066265 A CN107066265 A CN 107066265A
- Authority
- CN
- China
- Prior art keywords
- programming language
- message
- interconnection
- processing module
- interface
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种不同编程语言的互连方法及系统。所述方法包括:第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1;当第一编程语言需要与第二编程语言通信时,第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;所述第二编程语言按指令消息执行具体互连操作。本发明能够在降低软件开发人员的开发难度,提高软件开发人员的开发效率的情况下,解决不同编程语言之间信息互连问题。
Description
技术领域
本发明涉及软件开发领域,尤其涉及一种不同编程语言的互连方法及系统。
背景技术
在存储系统开发过程中,经常要用不同的开发软件开发各自的功能,进而实现整个软件系统的运行,如:语言界面设计采用Python语言或NODEJS语言,而具体实现功能部件通常采用C语言相关的开发工具来提高操作效率,此时就需要进行Python语言或NODEJS语言与C语言之间的互连,从而保证存储系统的正常运行。
目前,不同编程语言的互连方法一般采用编程语言接口技术,编程语言接口技术通过设计一个两种语言的接口文件来实现两种语言互连,常用的工具为简化封装和接口生成器(Simplified Wrapper and Interface Generator,SWIG),SWIG能够将复杂的语言解析头文件生成功能性文件,并将功能性文件通过函数或类的方式封装起来,对外只提供一个简单的函数接口,当其他开发环境语言需要调用所述功能性文件时,通过所述函数接口对所要调用的函数进行功能性描述,从而调用所需的功能性文件,进而实现编程语言之间互连,如:Python语言调用C语言,SWIG会自动对C代码封装成一个能被调用的模块,Python通过输入C的接口文件,调用所需的功能性模块。编程语言接口技术不会对源代码进行破坏,且实现了不同编程语言之间的互连。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
编程语言接口技术对软件开发人员的要求较高,不仅要会两种不同的编程语言,还要设计互连函数接口,开发难度较大。
发明内容
本发明提供的不同编程语言的互连方法及系统,能够在降低软件开发人员的开发难度,提高软件开发人员的开发效率的情况下,解决不同编程语言之间信息互连问题。
第一方面,本发明提供一种不同编程语言的互连方法,包括:
第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1;
第二编程语言调用消息互连处理模块的接口建立一个指向第一编程语言的消息队列2;
当所述第一编程语言需要与所述第二编程语言通信时,所述第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;
所述第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
所述第二编程语言按指令消息执行具体互连操作。可选地,所述指令消息包含约定的消息名称和互连协议参数,并能被所述第一编程语言和所述第二编程语言所识别。
第二方面,本发明提供一种不同编程语言的互连系统,包括:
第一编程语言、第二编程语言及消息互连处理模块;所述消息互连处理模块包括第一编程语言接口、第二编程语言接口、消息队列1和消息队列2。
所述第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1,
所述第二编程语言调用消息互连处理模块的接口建立一个指向第一编程语言的消息队列2;
当所述第一编程语言需要与所述第二编程语言通信时,所述第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;
所述第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
所述第二编程语言按指令消息执行具体互连操作。
可选地,所述指令消息包含约定的消息名称和互连协议参数,并能被所述第一编程语言和所述第二编程语言所识别。
本发明实施例提供的不同编程语言的互连方法及系统,通过在所述第一编程语言与所述第二编程语言之间传输两种语言都能识别的包含消息名和互连协议参数的消息,所述第二编程语言对所述消息名和互连协议参数的内容进行解析,执行具体互连操作,从而实现了所述第一编程语言与所述第二编程语言之间的互连。能够在降低软件开发人员的开发难度,提高软件开发人员的开发效率的情况下,解决不同编程语言之间信息互连问题。
附图说明
图1为本发明一实施例不同编程语言的互连方法流程图;
图2为本发明两个不同设备上编程语言之间互连的一幅示意图;
图3为本发明一实施例不同编程语言的互连系统的结构图;
图4为本发明两个不同设备上编程语言之间互连的另一幅示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种不同编程语言的互连方法,如图1所示,所述方法包括:
S11、第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1;
S12、第二编程语言调用消息互连处理模块的接口建立一个指向第一编程语言的消息队列2;
S13、当所述第一编程语言需要与所述第二编程语言通信时,所述第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;
S14、所述第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
S15、所述第二编程语言按指令消息执行具体互连操作。
例如:第一编程语言为Python语言,第二编程语言为C语言,消息互连处理模块为RabbitMQ,Python需要获取C语言系统所在系统的信息,消息名:GetSysInfo,互连协议参数:Memory。Python语言调用RabbitMQ接口创建指向C语言的消息队列,所述Python语言所在系统发送指令消息到RabbitMQ的消息队列,所述RabbitMQ消息队列发送所述指令消息到C语言所在系统,C语言系统调用RabbitMQ的接口从消息队列中接收所述指令消息,根据所述指令消息的消息名和互连协议参数,执行具体的操作,获取Memory的信息。
可选地,所述消息互连处理模块还可以为ZMQ队列,但不限于此;
可选地,所述第一编程语言和所述第二编程语言为本地互连或通过网络交换实现异地互连。
如图2所示,为两个不同设备上编程语言之间的互连示意图,其中,第一编程语言所在系统1存在于第一设备,第二编程语言所在系统2和第三编程语言所在系统3存在于第二设备,交换网络4实现所述第一设备和所述第二设备之间的网络互连;
第一编程语言所在系统1发送指令消息给交换网络4,所述交换网络4将所述指令消息发送给消息互连处理模块5,所述第二编程语言所在系统2从所述消息互连处理模块5中获取指令消息,同时,所述第三编程语言所在系统3从所述消息互连处理模块5中获取指令消息并处理。
本发明实施例提供的不同编程语言的互连方法及系统,通过在所述第一编程语言与所述第二编程语言之间传输两种语言都能识别的包含消息名和互连协议参数的消息,所述第二编程语言对所述消息名和互连协议参数的内容进行解析,执行具体互连操作,从而实现了所述第一编程语言与所述第二编程语言之间的互连。能够在降低软件开发人员的开发难度,提高软件开发人员的开发效率的情况下,解决不同编程语言之间信息互连问题。
本发明提供一种不同编程语言的互连系统,如图3所示,所述系统包括:第一编程语言11、第二编程语言12及消息互连处理模块13;所述消息互连处理模块13包括第一编程语言接口131、第二编程语言接口132、消息队列1和消息队列2。
所述第一编程语言11调用消息互连处理模块13的接口建立一个指向第二编程语言12的消息队列1,
所述第二编程语言12调用消息互连处理模块13的接口建立一个指向第一编程语言的消息队列2;
当所述第一编程语言11需要与所述第二编程语言12通信时,所述第一编程语言11产生一个指令消息,并调用消息互连处理模块13的第一编程语言接口131发到消息队列1;
所述第二编程语言12通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
第二编程语言12按指令消息执行具体互连操作。
可选地,所述指令消息包含约定的消息名称和互连协议参数,并能被所述第一编程语言和所述第二编程语言所识别。
例如:第一编程语言为Python语言,通信队列用RabbitMQ队列,第二编程语言为C语言,所述C语言所在系统通过所述RabbitMQ队列接收到指令消息后,识别并执行所述指令消息,将执行后得到的响应消息发送给所述RabbitMQ队列以使所述RabbitMQ队列获取键值信息,所述RabbitMQ队列根据所述键值信息将所述指令响应消息发送给Python语言所在系统。
可选地,所述通信队列还可以为ZMQ队列,但不限于此;
可选地,如图4所示,为两个不同设备上编程语言之间的互连示意图,其中,所述第一编程语言所在系统1存在于第一设备,所述第二编程语言所在系统2和所述第三编程语言所在系统3存在于第二设备,且所述第二编程语言所在系统2和所述第三编程语言所在系统3分别存在指令响应消息6和指令响应消息7,所述交换网络4实现所述第一设备和所述第二设备之间的网络互连;
所述第二编程语言所在系统2发送指令响应消息6到消息互连处理模块5,所述消息互连处理模块5解析所述指令响应消息6确定所述指令响应消息6对应的键值信息,并根据所述键值信息通过所述交换网络4发送给所述第一编程语言所在系统1,进而实现所述第一编程语言所在系统1和所述第二编程语言所在系统2之间的语言互连;
同时,所述第三编程语言所在系统3发送指令响应消息7到消息互连处理模块5,所述消息互连处理模块5解析所述指令响应消息7确定所述指令响应消息7对应的键值信息,并根据所述键值信息通过所述交换机3发送给所述第一编程语言所在系统1,进而实现所述第一编程语言所在系统1和所述第三编程语言所在系统3之间的语言互连;
本发明实施例提供的不同编程语言的互连方法及系统,通过在所述第一编程语言与所述第二编程语言之间传输两种语言都能识别的包含消息名和互连协议参数的消息,所述第二编程语言对所述消息名和互连协议参数的内容进行解析,执行具体互连操作,从而实现了所述第一编程语言与所述第二编程语言之间的互连。能够在降低软件开发人员的开发难度,提高软件开发人员的开发效率的情况下,解决不同编程语言之间信息互连问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种不同编程语言的互连方法,其特征在于,包括:
第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1,
第二编程语言调用消息互连处理模块的接口建立一个指向第一编程语言的消息队列2;
当所述第一编程语言需要与所述第二编程语言通信时,所述第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;
所述第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
所述第二编程语言按指令消息执行具体互连操作。
2.根据权利要求1所述方法,其特征在于,所述指令消息包含约定的消息名称和互连协议参数,并能被所述第一编程语言和所述第二编程语言所识别。
3.一种不同编程语言的互连系统,其特征在于,所述系统包括:
第一编程语言、第二编程语言及消息互连处理模块;所述消息互连处理模块包括第一编程语言接口、第二编程语言接口、消息队列1和消息队列2。
所述第一编程语言调用消息互连处理模块的接口建立一个指向第二编程语言的消息队列1;
所述第二编程语言调用消息互连处理模块的接口建立一个指向第一编程语言的消息队列2;
当所述第一编程语言需要与所述第二编程语言通信时,所述第一编程语言产生一个指令消息,并调用消息互连处理模块的第一编程语言接口发到消息队列1;
所述第二编程语言通过调用消息互连处理模块的第二编程语言接口,从消息队列1接收指令消息;
所述第二编程语言按指令消息执行具体互连操作。
4.根据权利要求3所述系统,其特征在于,所述指令消息包含约定的消息名称和互连协议参数,并能被所述第一编程语言和所述第二编程语言所识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710154350.7A CN107066265A (zh) | 2017-03-15 | 2017-03-15 | 不同编程语言的互连方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710154350.7A CN107066265A (zh) | 2017-03-15 | 2017-03-15 | 不同编程语言的互连方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107066265A true CN107066265A (zh) | 2017-08-18 |
Family
ID=59620752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710154350.7A Withdrawn CN107066265A (zh) | 2017-03-15 | 2017-03-15 | 不同编程语言的互连方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066265A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN109799980A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 基于数据处理多编程语言互连的方法、装置及计算机设备 |
CN110971581A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 加密数据处理方法和装置 |
CN111324465A (zh) * | 2020-02-19 | 2020-06-23 | 深圳壹账通智能科技有限公司 | 多线程调用方法、装置、计算机系统及存储介质 |
CN112114977A (zh) * | 2020-08-04 | 2020-12-22 | 福建亿能达信息技术股份有限公司 | 一种跨平台的业务系统对接方法和装置 |
CN113032169A (zh) * | 2021-05-25 | 2021-06-25 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
CN110874214B (zh) * | 2019-11-14 | 2023-06-16 | 北京明略软件系统有限公司 | 一种功能调用方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024014A (zh) * | 2012-12-03 | 2013-04-03 | 北京京东世纪贸易有限公司 | 通过消息队列的海量数据分发处理的方法和系统 |
CN103546342A (zh) * | 2013-10-18 | 2014-01-29 | 工业和信息化部电信传输研究所 | 一种终端一致性测试方法及用于该方法的api接口通用适配器 |
CN105279033A (zh) * | 2014-07-22 | 2016-01-27 | Tcl集团股份有限公司 | Android平台下C++和Java通信的方法及系统 |
-
2017
- 2017-03-15 CN CN201710154350.7A patent/CN107066265A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024014A (zh) * | 2012-12-03 | 2013-04-03 | 北京京东世纪贸易有限公司 | 通过消息队列的海量数据分发处理的方法和系统 |
CN103546342A (zh) * | 2013-10-18 | 2014-01-29 | 工业和信息化部电信传输研究所 | 一种终端一致性测试方法及用于该方法的api接口通用适配器 |
CN105279033A (zh) * | 2014-07-22 | 2016-01-27 | Tcl集团股份有限公司 | Android平台下C++和Java通信的方法及系统 |
Non-Patent Citations (1)
Title |
---|
BIJIAN1013: ""细数跨语言通信的选择"", 《HTTPS://WWW.ITEYE.COM/BLOG/BIJIAN1013-2232325》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284112A (zh) * | 2018-09-28 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN109284112B (zh) * | 2018-09-28 | 2022-03-22 | 郑州云海信息技术有限公司 | 一种用于运行应用程序的方法和装置 |
CN110971581A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 加密数据处理方法和装置 |
CN110971581B (zh) * | 2018-09-30 | 2022-05-27 | 北京国双科技有限公司 | 加密数据处理方法和装置 |
CN109799980A (zh) * | 2018-12-13 | 2019-05-24 | 平安普惠企业管理有限公司 | 基于数据处理多编程语言互连的方法、装置及计算机设备 |
CN110874214B (zh) * | 2019-11-14 | 2023-06-16 | 北京明略软件系统有限公司 | 一种功能调用方法、装置、电子设备和存储介质 |
CN111324465A (zh) * | 2020-02-19 | 2020-06-23 | 深圳壹账通智能科技有限公司 | 多线程调用方法、装置、计算机系统及存储介质 |
CN112114977A (zh) * | 2020-08-04 | 2020-12-22 | 福建亿能达信息技术股份有限公司 | 一种跨平台的业务系统对接方法和装置 |
CN113032169A (zh) * | 2021-05-25 | 2021-06-25 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
CN113032169B (zh) * | 2021-05-25 | 2021-08-24 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066265A (zh) | 不同编程语言的互连方法及系统 | |
US7950004B2 (en) | Devices systems and methods for testing software | |
CN103593173B (zh) | 一种应用程序的一体化开发系统、方法及装置 | |
CN104407863B (zh) | 抽象控件模型编程装置和方法 | |
CN104731566B (zh) | 集成开发环境测试装置、方法及系统 | |
CN107291867A (zh) | 基于人工智能的对话处理方法、装置、设备及计算机可读存储介质 | |
CN102799962A (zh) | 一种配置型业务流程系统及其实现方法 | |
CN107592238A (zh) | 接口的自动测试方法及系统、服务终端、存储器 | |
CN109768970A (zh) | 一种基于可配置的通用协议生成方法 | |
CN106648556A (zh) | 前后端集成开发测试的方法及装置 | |
CN106656980A (zh) | 一种自动化配置Docker容器访问控制的方法 | |
CN105190530A (zh) | 传输硬件渲染的图形数据 | |
US20100280855A1 (en) | Management of a first stand-alone system used as a subsystem within a second system | |
CN1973282A (zh) | 用于管理针对集群配置的改变的系统和方法 | |
CN103595611B (zh) | 即时通信应用的实现方法及系统、与设备 | |
US20200285568A1 (en) | Devices and methods for generating a stream of health-related data | |
KR102643673B1 (ko) | 거대 언어 모델 기반 런타임 환경에 대응하는 코드 변환 방법 및 이를 수행하는 전자 장치 | |
CN109445384A (zh) | 一种多设备控制系统 | |
CN107589965A (zh) | 一种软件开发方法及装置 | |
CN103973581B (zh) | 一种报文数据处理方法、装置及系统 | |
CN109783072A (zh) | 业务处理方法、装置、终端设备及计算机可读存储介质 | |
CN107864073A (zh) | 一种swift报文批量发送方法和装置 | |
KR100302332B1 (ko) | 통신운영시스템 감시 터미널의 수신 메시지 처리 방법 | |
CN107391133A (zh) | 一种应用程序生成器 | |
CN109343366A (zh) | 一种智能家居组态系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170818 |
|
WW01 | Invention patent application withdrawn after publication |