不同编程语言的互连方法及系统与流程

文档序号:11519326阅读:609来源:国知局
不同编程语言的互连方法及系统与流程

本发明涉及软件开发领域,尤其涉及一种不同编程语言的互连方法及系统。



背景技术:

在存储系统开发过程中,经常要用不同的开发软件开发各自的功能,进而实现整个软件系统的运行,如:语言界面设计采用python语言或nodejs语言,而具体实现功能部件通常采用c语言相关的开发工具来提高操作效率,此时就需要进行python语言或nodejs语言与c语言之间的互连,从而保证存储系统的正常运行。

目前,不同编程语言的互连方法一般采用编程语言接口技术,编程语言接口技术通过设计一个两种语言的接口文件来实现两种语言互连,常用的工具为简化封装和接口生成器(simplifiedwrapperandinterfacegenerator,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-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1