用于语言无关调度的代码服务制造技术

技术编号:14744639 阅读:120 留言:0更新日期:2017-03-01 20:36
本文所公开的是用于增强以不同的编程语言编写的组件的互操作性的系统、方法和软件。在实施方式中,代码服务接收由应用组件经由在目标环境之上层处的应用环境中的消息接口传递的请求消息。该请求消息包括调用对于目标组件的请求,目标组件在目标环境中可用并且以与应用组件的语言不同的语言编程。响应于该请求,服务标识至少与调用目标环境中的目标组件相关联的服务组件。执行服务组件以经由组件接口调用目标组件。

【技术实现步骤摘要】
【国外来华专利技术】
本公开的方面涉及计算硬件和软件技术,并且特别地涉及用于在组件之间对接的代码服务。
技术介绍
软件组件通常通过应用编程接口或应用二进制接口直接彼此通信。这样的接口定义其他组件可以调用给定组件并且与给定组件交互的方式。应用编程接口是相对于应用二进制接口不同的类型的接口,虽然这两者是通过其一个组件可以与另一组件交互的途径。当以不同的语言编程组件时,其几乎总是使用不同的编译器和解译器被编译或被解译。这可能导致其中妨碍组件之间的互操作性的情况。例如,可以以C或C++编写库中的组件,而可能已经以JavaScript或一些其他语言编写调用到库中的组件。库可以具有与其编程语言相关联但是可以当那些组件利用不同的构造与以不同的语言编写的其他组件交互时创建失配的构造的集合(类型、函数、方法等)。在这样的情况下,可能开始运行时间误差和其他不规则性。该问题的一些解决方案包括将适当的应用编程接口或应用二进制接口手动地编码为调用组件的源代码,虽然这可能是冗长的并且易于出错的。而且,维持这样的代码来跟上组件接口的变化是不必要地消耗开发资源的艰巨任务。为了减轻这些和其他挑战,已经开发允许以一种语言编写的组件成功地调用以另一种语言编写的组件的语言特定调度器。例如,以C#编写的组件可以包括在相同过程中运行并且可以与目标组件交互的C#特定调度器。在与以C++编写的不同的组件相关联的分离的过程中,例如,分离的C++特定调度器可以运行,其还能够针对在其他过程中运行的组件与目标过程交互等。
技术实现思路
在本文中提供了用于增强以不同的语言编写的软件组件的互操作性的系统、方法和软件。在实施方式中,代码服务接收由应用组件经由消息接口传递的请求消息,该消息接口在目标环境之上层处的应用环境中。该请求消息包括对于调用目标组件的请求,该目标组件在目标环境中可用并且以与应用组件的语言不同的语言被编程。响应于请求,服务标识至少与调用目标环境中的目标组件相关联的服务组件。执行服务组件以经由组件接口调用目标组件。在一些实施方式中,代码服务包括处理对目标组件的调用的语言无关调度器和在调度器与调用代码服务的应用之间转译的语言无关适配器。提供该概述以引入在技术公开中下文进一步描述的简化形式的概念的选择。可以理解,该概述既不旨在标识所请求保护的主题的关键特征或基本特征,其也不旨在用于限制所请求保护的主题的范围。附图说明可以参考以下附图更好地理解本公开的许多方面。虽然结合这些附图描述一些实施方式,但是本公开不限于本文所公开的实施方式。相反,目的是覆盖所有替换、修改和等价。图1图示了实施方式中的操作架构。图2图示了实施方式中的操作场景。图3图示了实施方式中的接口过程。图4图示了实施方式中的操作架构。图5图示了实施方式中的操作场景。图6图示了实施方式中的操作场景。图7图示了实施方式中的操作架构。图8图示了实施方式中的操作架构。图9图示了适合实现关于图1-图8本文所公开并且下文在具体实施方式中本文所讨论的应用、服务、过程、架构和操作场景中的任一个的计算系统。具体实施方式本文所公开的实施方式实现了应用环境中的应用组件与目标环境中的目标组件之间的增强的互操作性。代码服务辅助与消息接口层处的应用组件和组件接口层处的目标组件的通信。应用组件可以使代码服务的请求调用目标组件,响应于代码服务的请求,代码服务使用服务组件调用组件接口层处的目标组件。在至少一个实施方式中,代码服务接收由应用组件经由消息接口传递的请求消息。该请求消息可以包括对于调用目标组件的请求,该目标组件在目标环境中可用并且以与应用组件的语言不同的语言被编程。响应于请求,该代码服务标识与调用目标环境中的目标组件相关联的服务组件,并且运行或执行服务组件以经由组件接口调用目标组件。在被调用时,目标组件执行并且可以经由组件接口将结果返回给服务组件。代码服务可以经由消息接口将答复消息传递给应用组件,答复消息包括指示由目标组件所提供的结果的答复。在一些实施方式中,应用环境可以是web浏览器应用。应用组件的示例包括在web浏览器应用(诸如JavaScript应用)中运行的应用代码。目标环境可以是操作系统,并且在一些场景中,消息接口可以是web浏览器与操作系统之间的通信信道。目标组件的示例包括操作系统中的对象,并且服务组件可以包括用于调用对象的代码。web浏览器与操作系统之间的通信信道的示例包括网络请求、映射存储器、超文本传输协议请求、加密服务(诸如安全套接层或SSL)、web服务请求或web套接通信。组件接口的示例包括应用二进制接口和应用编程接口。在一些场景中,代码服务可以包括语言无关调度器和各个语言特定适配器。每个语言特定适配器接收请求消息以调用目标组件。以与目标组件不同的语言编写的应用组件可以发起请求消息。编写每个语言特定适配器的语言可以相对于编程目标组件的语言以及相对于特别地与各个语言特定适配器的其他语言特定适配器相关联的其他语言不同。语言特定适配器可以将请求消息转译为用于语言无关调度器处理的请求。语言无关调度器可以然后标识与作为请求消息的对象的目标组件相关联或相对应的各种服务组件。可以通过运行传递或调用组件接口层处的目标组件的服务组件来调用目标组件。在一些实施方式中,可以在建立时自动生成语言特定适配器。例如,当开发新目标组件时,可以在建立新目标组件时自动生成对应于各种编程语言的各种语言特定适配器。目标组件和语言特定适配器可以然后被部署到其中已经存在语言无关调度器的运行环境中。备选地,调度器可以同时被部署为新的目标组件和适配器。现在参考附图,图1图示了其中代码服务可以被用于促进应用组件与目标组件之间的交互的操作架构。图2图示了包含操作架构的操作场景,而图3图示了可以由代码服务采用的接口过程。图4图示了包括语言特定适配器和语言无关调度器的另一操作架构。图5和图6二者图示了包含适配器和调度器的操作场景,而图7和图8图示了表示各种备选设计的附加操作架构。图9图示了适合实现本文所公开的应用、服务、过程、架构和操作场景中的任一个的计算系统。现在转到图1,操作架构100包括应用环境103中的应用组件101。应用组件101通过消息接口与代码服务111通信。代码服务111包括服务组件113,其通过组件接口与目标环境123中的目标组件121通信。可以理解,操作架构100可以包含其他元件并且不限于仅本文所公开的那些元件。参考图2,在操作中,应用组件101在应用环境103中被调用并且通过消息接口将请求消息传递给代码服务111。代码服务111接收请求消息并且响应地使用服务组件113通过组件接口调用目标组件121。目标组件121运行并且将执行结果返回给代码服务111。代码服务111通过消息接口将结果提供给应用组件101。可以理解,在应用组件101与代码服务111之间交换的通信背后的填充模式表示消息接口。在代码服务111与目标组件121之间交换的通信背后的不同的填充模式表示组件接口,其可以是与消息接口不同类型的接口。图3图示了在操作场景200的上下文中由代码服务111采用的接口过程300。接口过程300更详细地描述利用应用组件101和目标组件121的代码服务111的功能。在操作中,代码服务111通过消息接口从应用组件101接收代码请求(步骤301)。请本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580025327.html" title="用于语言无关调度的代码服务原文来自X技术">用于语言无关调度的代码服务</a>

【技术保护点】
一种装置,包括:一个或多个计算机可读存储介质;以及程序指令,所述程序指令被存储在所述一个或多个计算机可读存储介质上并且包括代码服务,所述代码服务当由处理系统执行时引导所述处理系统至少:接收由应用组件经由消息接口传递的请求消息,所述消息接口在目标环境之上的层处的应用环境中,其中所述请求消息包括对于调用目标组件的请求,所述目标组件在所述目标环境中可用并且以与所述应用组件的语言不同的语言被编程;响应于所述请求,标识至少与调用所述目标环境中的所述目标组件相关联的服务组件;以及运行所述服务组件以经由组件接口调用所述目标组件。

【技术特征摘要】
【国外来华专利技术】2014.05.16 US 14/280,5601.一种装置,包括:一个或多个计算机可读存储介质;以及程序指令,所述程序指令被存储在所述一个或多个计算机可读存储介质上并且包括代码服务,所述代码服务当由处理系统执行时引导所述处理系统至少:接收由应用组件经由消息接口传递的请求消息,所述消息接口在目标环境之上的层处的应用环境中,其中所述请求消息包括对于调用目标组件的请求,所述目标组件在所述目标环境中可用并且以与所述应用组件的语言不同的语言被编程;响应于所述请求,标识至少与调用所述目标环境中的所述目标组件相关联的服务组件;以及运行所述服务组件以经由组件接口调用所述目标组件。2.根据权利要求1所述的装置,其中所述代码服务还引导所述代码服务:响应于所述目标组件在已经被调用之后经由所述组件接口返回至少结果,经由所述消息接口向所述应用组件传递答复消息,所述答复消息包括指示至少所述结果的答复。3.根据权利要求2所述的装置:其中所述应用环境包括浏览器应用,并且所述应用组件包括在所述浏览器应用中运行的应用代码;其中所述目标环境包括操作系统;其中所述消息接口包括在所述浏览器应用与所述操作系统之间的通信信道;其中所述目标组件包括所述操作系统中的对象;并且其中所述服务组件包括用于调用所述对象的代码。4.根据权利要求3所述的装置,其中所述浏览器应用与所述操作系统之间的所述通信信道包括以下各项中的一项:网络请求、映射存储器、超文本传输协议请求、加密服务、web服务或web套接字。5.根据权利要求4所述的装置,还包括所述处理系统,所述处理系统被配置为执行所述程序指令,并且其中所述组件接口包括以下各项中的一项:应用二进制接口或应用编程接口。6.根据权利要求1所述的装置,其中所述代码服务包括语言无关调度器和多个语言特定适配器,其中每个语言特定适配器当由所述处理系统执行时引导所述处理系统:接收用于调用多个目标组件的请求消息,所述请求消息由多个应用组件发起,所述多个应用组件以相对于所述目标组件被编程的所述语言不同的语言被编程,并且所述...

【专利技术属性】
技术研发人员:F·A·马梅里Z·陈朱韶峰M·C·范宁
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1