基于异构环境的远程通信打包方法及系统技术方案

技术编号:16042630 阅读:35 留言:0更新日期:2017-08-20 01:01
本发明专利技术提供一种基于异构环境的远程通信打包方法,其包括以下步骤:(a)设置在宿主中的服务探针搜索用于进行远程通信的服务信息;(b)当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台;(c)通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;(d)通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。

【技术实现步骤摘要】
基于异构环境的远程通信打包方法及系统
本专利技术涉及异构环境
,尤其涉及一种基于异构环境的远程通信打包方法及系统。
技术介绍
目前,在实施SOA服务体系过程中会涉及中间件的应用。通常所述中间件通过采用dubbo、thrift、hsf等技术方案来实现框架服务,其中,例如dubbo仅适用于同一环境下(即同一JAVA环境)进行调用,又例如.net亦是如此情况。如果进行跨环境调用操作,则需要人工操作,且生成一大堆代码文件,以供用户调用。上述dubbo、thrift等在混合的语言环境中,会增加软件开发过程中的人力与时间成本,而且导致软件开发的复杂度增加。另外,也存在缺少相关的控制功能及后台管理的问题。因此,亟需提供一种基于异构环境的远程通信打包方法及系统。
技术实现思路
本专利技术的目的在于解决现有技术的不足,提供一种基于异构环境的远程通信打包方法及系统,其适用于异构多语言环境,通过自动化的打包平台,在软件开发过程中,不需要人工干预,能够自动为任意环境生成对应的调用代理,开发人员通过代理便可进行远程方法调用而无需关心具体环境,从而不仅实现屏蔽环境障碍,而且能够降低软件开发复杂度,以及节约软件开发过程中的人力与时间成本。为了解决上述问题,本专利技术的一方面,提供一种基于异构环境的远程通信打包方法,包括步骤:(a)设置在宿主中的服务探针搜索用于进行远程通信的服务信息;(b)当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台;(c)通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;(d)通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。本专利技术的另一方面,提供一种基于异构环境的远程通信打包系统,其包括:服务信息搜索模块,所述服务信息搜索模块用于通过设置在宿主中的服务探针搜索用于进行远程通信的服务信息;服务信息转换模块,所述服务信息转换模块与所述服务信息搜索模块相连,所述服务信息转换模块用于当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据;服务元数据发送模块,所述服务元数据发送模块用于将所述服务元数据发送至打包平台;代理代码生成模块,所述代理代码生成模块与所述服务元数据发送模块相连,所述代理代码生成模块用于通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;代理代码编译模块,所述代理代码编译模块与所述代理代码生成模块相连,所述代理代码编译模块用于通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。本专利技术的优点在于,通过本专利技术的基于异构环境的远程通信打包方法及系统,其适用于异构多语言环境,通过自动化的打包平台,在软件开发过程中,不需要人工干预,能够自动为任意环境生成对应的调用代理,开发人员通过代理即可进行远程方法调用而无需关心具体环境,从而不仅能够达到屏蔽环境障碍效果,而且可以降低软件开发复杂度,以及节约软件开发过程中的人力与时间成本。另外,打包平台具有语言级的控制能力,从而可以限制、开放某种特定类的使用和限制。附图说明图1是本专利技术一实施例中的基于异构环境的远程通信打包方法的步骤流程示意图;图2是本专利技术一实施例中的基于异构环境的远程通信打包系统的架构示意图。具体实施方式下面结合附图对本专利技术提供的基于异构环境的远程通信打包方法及系统的具体实施方式做详细说明。在现有SOA服务体系过程中会涉及中间件的应用,通常所述中间件通过采用dubbo技术方案来实现框架服务,但是dubbo仅适用于同一环境下(即同一JAVA环境)进行调用。如果进行跨环境调用操作,则需要人工进行大量的本地代理。再者,现有的系统开发完毕后,如果收到用户的调用请求,则需要将其自身系统下的文件发送给用户,但是这只能在单语言环境下使用,其原因是由于每一个语言使用环境不同。若需要实现跨平台,则需要有中间物来表示,如果通过特定工具,则仍然需要人工手动操作以生成相关文件(例如,针对c#语言环境,手动生成.CS文件,针对Java语言环境,手动生成.Java文件),而且在该种情况下,缺少版本控制,如果遇到系统升级或业务变化,容易造成版本混乱。另外,虽然WSDL(WebServicesDescriptionLanguage,Web服务描述语言)为一种WEB通用的服务中间语言,但是用户无法解读采用该格式的描述文本,因此需要单独使用一套开发工具进行解析。而开发工具例如VisualStudio等需要人工操作,并且会在本地生成一堆代码文件,基于该代码文件才能对目标服务进行调用。因此,采用WSDL方式并不能够真正解决现有技术中所存在的问题。于是,本专利技术提出一种基于异构环境的远程通信打包方法。参见图1所示,本专利技术一实施例中的基于异构环境的远程通信打包方法,包括以下步骤:(a)设置在不同语言服务器中的服务探针搜索用于进行远程通信的服务信息;(b)当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台;(c)通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;(d)通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。以下将具体说明每一步骤。步骤S110:设置在宿主中的服务探针搜索用于进行远程通信的服务信息。此处,宿主是指所有受支持的语言开发的应用程序,下文相同,不再赘述。所述服务探针可以被称作SDK(软件开发包),其植入于所有受支持的语言(例如C#语言、Java语言、PHP语言)开发的应用程序中,并且所述服务探针跟随所述应用程序的启动而启动。每一个语言对应于一相应的服务探针。在本实施例中,所述服务探针采用异步方式进行搜索操作。也就是说,在所述宿主(或者说,应用程序)正常启动过程中,当所述用程序准备执行其预先设定的操作之时(即代码入口点),所述服务探针开始进行搜索。这样,通过异步方式进行搜索,能够避免当探针发生意外时对宿主系统(即受支持的语言开发的应用程序)产生影响,保证宿主系统正常的预设操作的执行。所述服务信息是指所述应用程序中的所有类(包括其属性和方法)。需注意的是,所述服务探针可以根据用户设定条件和探针预设条件来搜索满足条件(或规则)的服务信息。其中,所述用户设定条件和探针预设条件可以包括但不限于:公共的,非私有的、非基本类型、方法或者类名符合包含某些字符串、指定路径下的等。这样,可以开放或限制某些特定类型的服务信息的使用。步骤S120:当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台。在此步骤和上述步骤S110中,所述服务探针通过反射方式来搜索和解析所述服务信息,并且在步骤中,通过编码方式(例如XML方式进行)将所述服务信息转换为服务元数据。当然,所述编码方式包括但不限于XML格式,在其他部分实施例中也可以采用JSON格式或其他格式。另外,服务元数据可以被理解为一种用于对类信息(包括属性或方法)进行定义的中间语言,其使用XML方式或其他格式编码。中间语言不属于任何语言,其可以通过XML或JSON方式来表示类的属性及方法等信息。服务元数据包括但不限于一个或多个方法的输入输出信息。另外,所述服务元数据以XML格式表示,并通过WEB接口发送至所述打包平台。步骤S140本文档来自技高网...
基于异构环境的远程通信打包方法及系统

【技术保护点】
一种基于异构环境的远程通信打包方法,其特征在于,包括以下步骤:(a)设置在宿主中的服务探针搜索用于进行远程通信的服务信息;(b)当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台;(c)通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;(d)通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。

【技术特征摘要】
1.一种基于异构环境的远程通信打包方法,其特征在于,包括以下步骤:(a)设置在宿主中的服务探针搜索用于进行远程通信的服务信息;(b)当搜索到所述服务信息时,通过编码方式将所述服务信息转换为服务元数据,并发送至打包平台;(c)通过代码生成器将所述服务元数据进行解析,以根据不同的目标环境生成相应的代理代码;(d)通过代码编译器将所述代理代码进行编译,以产生相应的编译文件。2.根据权利要求1所述的方法,其特征在于,在步骤(b)和步骤(c)之间进一步包括步骤:(e)所述打包平台接收所述服务元数据,并且判断所述服务元数据的数据类型和方法定义是否满足预设定的条件,若满足预设定的条件,则执行步骤(c);(f)若不满足预设定的条件,则发送通知信息给用户。3.根据权利要求1所述的方法,其特征在于,在步骤(a)中,所述服务探针随所述宿主启动而启动,并且采用异步方式来执行搜索操作。4.根据权利要求1所述的方法,其特征在于,在步骤(a)和步骤(b)中,所述服务探针通过反射方式来搜索和解析所述服务信息。5.根据权利要求1所述的方法,其特征在于,在步骤(b)中,所述服务元数据以XML格式表示,并通过WEB接口发送至所述打包平台。6.根据权利要求1所述的方法,其特征在于,在步骤(d)之后,进一步包括步骤:(g)将所产生的编译文件进行打包以生成文件包,并且将所述文件包发送至一包管理器,以进行归档。7.根据权利要求6所述的方法,其特征在于,在步骤(g)之后,进一步包括步骤:(h)所述包管理器接收一用户的文件包请求,所述文件包请求包括文件包名称和版本信息;(i)根据所述文件包名称和所述版本信息在所述包管理器内查找相应的文件包,若查找到,则将所述文件包返回至所述用户;(j)若未查找到,则发送通知信息给所述用户。8.根据权利要求6所述的方法,其特征在于,在步骤(d)之后,对所述文件包设置相应的版本信息。9.一种基于异构环境的远程通信打包系统,其特征在于,包括:服务信息搜索模块,所述服务信息搜索模块用于通过设置...

【专利技术属性】
技术研发人员:刘星辰
申请(专利权)人:上海找钢网信息科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1