CN101495987B - 节点到节点通信流水线 - Google Patents

节点到节点通信流水线 Download PDF

Info

Publication number
CN101495987B
CN101495987B CN2006800255288A CN200680025528A CN101495987B CN 101495987 B CN101495987 B CN 101495987B CN 2006800255288 A CN2006800255288 A CN 2006800255288A CN 200680025528 A CN200680025528 A CN 200680025528A CN 101495987 B CN101495987 B CN 101495987B
Authority
CN
China
Prior art keywords
node
module
agreement
api
constraint condition
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
Application number
CN2006800255288A
Other languages
English (en)
Other versions
CN101495987A (zh
Inventor
B·K·帕平
J·S·米勒
J·瑞彻特
T·E·奎因
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101495987A publication Critical patent/CN101495987A/zh
Application granted granted Critical
Publication of CN101495987B publication Critical patent/CN101495987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

节点到节点通信流水线可包括根据动态输入模块专用参数来跨协议排至和安装的代码模块。这些参数可被输入到模块所注册的服务,且可动态装配一个或多个适当的流水线。

Description

节点到节点通信流水线
背景
应用、程序、函数、以及其它可编程及可执行的代码的组装件可以被模块化。即,与上述组件相关联的代码可以被拆分成多个代码模块,在不同时间由不同的当事方独立地生成和再生(即生成新版本)。此类代码模块的示例包括可以由最终用户在运行时间插入到应用中的“内插附件”。
在运行时间,此类代码模块可能相互关联起来或者这种相互关联关系以其他方式表现。但是,运行时间可能也表现出代码模块之间存在版本和/或兼容性问题。“版本”问题可能涉及对上述生成的及内插的应用、程序、函数、以及其它可编程及可执行的代码的组装件的一个或多个部分的改变;而兼容性问题可能源于在任何一个部分的更细微的变动。
概述
在此要说明动态节点到节点通信流水线。
更具体地,在此描述的示例实现涉及节点到节点通信流水线,其包括可根据动态输入的模块专用参数进行配置和装配的代码模块。这些参数可被输入至模块注册于其中的服务,并且一条或多条适合的流水线可动态地装配。
附图说明
现在依照下面的附图说明动态的节点到节点通信流水线。
图1示出通过网络进行通信的设备,其中的设备实现示例技术使模块初始化。
图2示出一个实现示例性技术以实现动态的节点到节点通信流水线的执行环境的示例。
图3示出一个动态的节点到节点通信流水线的示例性实现。
图4示出一个依据示例性动态的节点到节点通信流水线的示例性处理流程。
具体实施方式
在此要说明动态的对等通信流水线。
更具体地,在本发明中,动态的节点到节点通信流水线可涉及固定站段,可以可变方式指定的顺序装配起来的节点到节点的流水线。此外,在网络环境中,动态的节点到节点通信流水线可在一个或多个设备或者节点中实现,节点配置由此可包括对等设备配置或主机-客户机配置。
在本发明中,“流水线”可包括至少一个或多个节点应用程序设计接口(下称“API”)、一个或多个适配器、以及至少一个协议。此类流水线可包括数量可变的上述API、适配器和协议及其组合,并且不需要包含所有的上述流水线元素。
在本发明中,“API”可以是指一组例程,其由应用、程序、函数、以及其它可编程及可执行的代码的组装件用于通过相应的执行环境如操作系统或运行时执行环境指引有关步骤的履行。在本发明中,“适配器”可以是指能够在通信上使一个API适应另一个API的模块或对象,,且这些模块或对象可以串行链接或者通过协议链接。在本发明中,“协议”可以是指对象赖以通信的一个规范或者契约,API是这种对象的一个给排他性例子。
因此,在本发明中,“流水线”可以进一步指一个代码模块或对象链,其中的代码模块或对象经由协议从主机API适配器流向内插附件API适配器,从而把第一个节点应用(例如主机应用)与第二节点应用(例如内插附件应用)连接起来。
图1示除了网络环境100,在此网环境中可以实现动态的节点到节点通信流水线的示例性技术,尽管动态的节点到节点通信流水线不局限于网络环境。在图1中,客户机设备105、服务器设备110、以及“其它”设备115可以通过网络125在通信意义上彼此联结;此外,在本发明中,客户机设备105、服务器设备110、以及“其它”设备115中的至少一个能够实现动态的对等通信流水线120。
客户机设备105可表示包括个人桌上型电脑(PC)、工作站、大型计算机、因特网设备、置顶盒、游戏控制台在内的多种传统计算设备中的至少一种。客户机设备105还可表示能够通过有线和/或无线链接与网络125相关联的任何设备中的至少一种,包括移动(即蜂窝)电话、掌个人数字助理(PDA)、膝上型计算机等等。再次,客户机设备105可表示不同数目的前述客户机设备和/或它们的组合。“其它”设备115也可由任何前述客户机设备105示例具体实现。
服务器设备110可表示任何一种能够根据至少一种动态的节点到节点通信流水线120的实现向客户器设备105或者“其它”设备115提供多种数据中的一种和/或计算机功能性的设备。这些数据可能是公开可得的或者是受限制的,例如,仅限于特定用户或者仅限于支付了适当的订阅或许可费时。服务器设备110可以是以下设备中的至少一个:网络服务器、应用服务器、刀片服务器,或者是它们的任意组合。典型地,服务器设备110可表示任何一种可以是内容来源的设备,而客户机设备105可表示任何一种可以通过网络125或者以脱机方式接收此类内容的设备。然而,依据在此说明的示例性实现,客户机设备105和服务器设备110可以在网络环境100中交替作为发送节点或接收节点。“其它”设备115也可以任何一种上述的服务器设备110的示例具体实施。
“其它”设备115可表示能够实现依据在此说明的一个或多个实施例的动态的节点到节点通信流水线120的其它的设备。即,“其它”设备115可表示任何一种软件激活型计算或处理设备,这种激活设备能够在至少一种受管的执行环境中实现应用、程序、函数、以及其它可编程及可执行的代码的组装件的模块初始化。如此,“其它”设备115可以是拥有操作系统、解释器、转换器、编译器、或在其上实现的运行时执行环境中的至少一个的计算或处理设备。这些实施例在任何意义上都不是限制性的,所以不应该以那种方式来解释。
网络125可表示包括有线和/或无线网络在内的多种传统网络拓扑和网络类型中的任何一种。网络125还可利用包括公共和/或私人协议在内的多种传统的网络协议中的任何一种。例如,网络125可包括因特网、以及一个或多个局域网(各称作“LAN”)的至少若干部分,比如802.11系统,或在更大规模上的广域网(即“WAN”);或者个人区域网(即“PAN”),例如蓝牙。
在设备105、110、115中的至少一个中的计算机体系结构通常被按照硬件和软件限定计算平台。计算设备的软件根据功能被划分成不同的组,这些组可包括:硬件抽象层(或者称为“HAL”)、操作系统(或者称为“OS”)、以及应用。
运行时执行环境可以是指在OS和应用之间的隔离空间,在此空间中应用可以在处理设备105、110、以及115中的至少一个设备上执行特定任务。更具体地,通过为运行在处理设备上的应用提供抽象层和服务、并进一步为应用提供包括内存管理及其配置在内的能力,运行时执行环境可以提高在包括服务器、桌上型电脑、膝上型计算机、移动处理设备在内的越来越多的处理设备105、110和115上的应用执行的可靠性。
运行时执行环境可以作为应用程序设计平台和应用执行平台中的至少一个。作为应用程序设计平台,运行时执行环境可以把可能是用多种计算语言中的一种写成的目标应用编译成中间语言(下称“IL”)。IL通常独立于平台并且由中央处理器(下称“CPU”)执行IL。事实上,IL是一种比许多CPU机器语言更高层次的语言。作为应用程序执行平台,运行时执行环境可以把编译好的IL解释成本机机器指令。运行时执行环境可以利用解释器或者编译器(例如,“刚好及时”编译器,也称为“JIT”编译器)来执行这些指令。无论如何,本机机器指令可以直接被CPU执行。因为IL与CPU无关,所以只要在CPU平台上运行的OS提供一个适当的运行时执行环境,IL就可以在任何一个CPU平台上运行。动态的节点到节点通信流水线120的实现可能适合的运行时执行环境的示例包括:Visual Basic运行时环境;被用来运行例如Java
Figure 2006800255288_0
例程的Java虚拟机运行时环境;或者在执行一个调用例程前把例如Microsoft.NETTM应用编译成机器语言的用通用语言运行系统(CLR)。但是,这里列出的运行时环境仅仅只是举例。示例实现不仅限于这些受管的执行环境。更具体地,示例实现不仅限于这些受管的执行环境,因为一个或多个示例可以在测试环境和/或不受管的环境中实现。
一个被编译成IL的应用可以被称为“受管的代码”,这就是为什么运行时执行环境也可以被称为“受管的执行环境”。注意,不利用运行时执行环境来执行的代码可被称为本机代码应用。
在至少一种受管的执行环境中,一个隔离单元或一个进程的一个“隔离构件”可以被称为“应用域”。这样的术语仅仅是一个例子。即,在此描述的示例性实现不仅局限于应用域,甚至也不局限于上述受管的执行环境,而是相反地适用于在多种执行环境中的多种其它隔离构件实现。
隔离构件(例如:应用域)可以使拟在其中执行的代码被从指定的源载入;一个隔离构件可以独立于其它的隔离构件中止;而在一个隔离构件中的处理也可以被隔离,以便在其中发生的故障不致影响在这个进程中的其它隔离构件。换言之,直到使总体进程保持不变,在一个隔离构件中的处理的作用对于正在运行的构件才是可见的。为了前后一致的缘故,此后的讨论可能涉及到“应用”和“进程”,这两者都可以包括软件程序和应用中的任何一种,至少是软件程序,可能是一个,也可以是组合。
图2示出了可以在其中实现动态的节点到节点通信流水线120(见图1),特别是协议间的动态的节点到节点通信流水线的示例的运行时执行环境200的一个示例。
根据至少一个示例性实现,运行时执行环境200可以促进计算设备平台的受管的代码的执行。受管的代码可以被认为是应用程序开发技术核心集的一个部分,还可以被认为是编译成在运行时执行环境200中执行以便为计算设备平台提供相应服务的应用、程序、函数、以及其它可编程和可执行的代码的组装件。除此之外,运行时执行环境200可以把解释层的受管的代码翻译成可以被处理机代理并随后执行的指令。运行时执行环境200的架构还可提供类库,类库可以被认为是受管的应用的软件程序块。
运行时执行环境200可提供至少部分的预计可从内核得到的功能,这种功能取决于设备105、110、和115(见图1)中特定的一个的资源约束条件在计算设备平台上可能缺乏也可能不缺乏。如此,运行时执行环境200的至少一个示例可以执行如下操作:输入/输出(下称“I/O”)例程管理、内存管理、编译、以及服务例程管理。如此,运行时执行环境200可包括I/O组件205、编译器210、至少一个内存管理组件215、服务例程管理器225、和执行组件225。在下文中将进一步说明的这些组件只是提供了一些示例,并非意在局限于运行时执行环境200的任何特定实现,所以不应当得出这样的推论。如此,这些组件可以不同的组合和不同的配置形式实现运行时执行环境200的示例。
运行时执行环境200的I/O组件205可以提高对与计算设备平台相关联的数据源(即处理器和外围设备)的异步访问。更具体地,I/O组件205可以向运行时执行环境200提供健壮的系统吞吐量以及其它从中产生I/O请求的代码的流线性能。
编译器210可以是指在运行时执行环境200中的一个模块,它能把编译好的IL翻译成本机机器指令以在运行时执行环境200中执行。此外,依照至少一个模块初始化120的示例实现,编译器210可出于各种目的动态地分析与可能被载入运行时执行环境200的应用、程序、函数、以及其它可编程及可执行的代码的组装件相关联的代码模块的行为。此类分析可包括确定编译代码模块的版本及协议兼容性。再次,分析也可以在不触动或影响代码模块的可执行部分的情况下进行。分析可以在编译时、初始运行时、或者在之后的编码模块可执行部分执行期间的任何时间进行。
内存管理组件215可以被视作“垃圾收集器”。垃圾收集可以被视作是受管的代码执行环境的健壮特征,籍此当任何应用都不再使用某一个对象时,通过清扫或扫描内存堆,该对象会被自动释放(即:解除分配)。内存管理组件215实现的其它功能可包括:管理一个或多个相邻的有限易失性RAM(即内存堆)存储块,或是一组运行在计算设备平台上的任务之间的相邻的内存块;把内存分配给运行在计算设备平台上的至少一个应用;在由至少一个应用程序提出请求时释放内存的至少一部分;防止任何应用程序侵入访问已经被分配给其它应用程序的内存空间。
服务例程管理器220可被包括为应用程序支持层的至少一部分以便为处理器和外围设备提供服务应用功能。与动态的节点到节点通信流水线相关联的服务的示例实现可以但并不是只可以由服务例程管理器220管理。例如,服务例程管理器220可以与允许应用程序向服务注册包括但不限于API适配器和协议的模块。此外对于这样的示例实现而言,服务例程管理器220可以允许基于输入服务的参数和约束条件来配置和装配包括向服务注册的多种适配器和协议的组合的节点到节点通信流水线。
执行组件225可以执行计算设备平台的可控代码。更具体的是,对于动态对等通信流水线120的实现,执行组件225可用作运行时执行环境200中可以确定要由动态节点到节点通信流水线满足的一个或多个参数,包括例如协议约束条件的示例性组件。如上关于服务例程服务器220所述,这样的参数可以被输入模块和协议所注册的服务中。此外,执行组件225可以将这些参数提交给实现120的服务。
图3示出了示例性的节点到节点通信流水线300,它由在此说明的节点到节点通信流水线示例实现的至少其中之一配置和装配。
更具体的是,节点到节点通信流水线300的示例实现可以包括在通信上连接两个对象的模块的一连串动态装配的模块。依据至少一个流水线300的实现,这样的对象的非限定性示例包括一个主机应用和一个内插附件应用,并且不仅限于此示例。更具体的是,节点到节点通信流水线300可以使适配器之间的协议间通信。
模块305可以表示一个主机视图对象,这个主机视图对象可以被视作主机应用的API的一个抽象接口或是类。
模块310可以表示至少一个能够接口连接模块305的适配器。这就是说,模块310为了与另一节点对象的API的兼容通信,可以调节一个节点对象的一个API(即模块305)。
模块315可以表示参考规范或契约的一个协议,借此各模块(API为其非排他性示例)可通信。因为协议315可能被严格定义因此是不变的,所以协议内模块之间可以相互通信。依据至少一个流水线300的示例实现,协议315可以表示如下的至少一个:执行环境间协议;隔离构件间协议(即,在一个特定的执行环境中,穿过一个隔离构件到另外一个隔离构件);进程间协议;以及机器间协议。因此,协议315可以表示用于多个模块(即多个API)的通信桥(例如:隔离构件、进程、机器、规范)。模块320可以表示至少一个能够接口连接模块305的适配器。模块320可以为与另一个节点对象的一个API(即模块305)兼容通信来调节一个节点对象的API(即,模块325)。
模块325可以表示一个内插附件视图对象。依据当前的示例,模块325可以被视作内插附件应用的API的一个抽象接口或是类。
图4示出了依据一个动态的节点到节点通信流水线120(见图1)的示例实现的示例处理流程400示例。参考以上关于图2中的运行执行环境200和图3中的示例流水线300描述的特征和特性来描述处理流程400。
更具体的是,作为非限定性示例,对处理流程400的描述可以参考允许模块(例如:主机视图对象)305的多个版本和模块(例如:内插附件视图对象)325的多个版本间进行兼容的通信。
块405可以参考服务例程管理器220(见图2)、主机应用以及把模块310和320的多个版本注册到服务415中的内插附件应用中的至少一个。就是说,服务415可以在其中注册多个适配器,这些适配器能够与模块310、模块320或用于与模块310或模块320任一个接口连接的至少一个其它的适配器模块中的一个通信连接。作为一个示例,服务415可以在其中注册主机到协议适配器模块310的多个版本,每个版本都可以在模块305的一个不同的版本和不同的协议315之间通信连接。类似地,服务415也可以在其中注册协议到内插附件适配器模块320的多个版本,每个版本都可以在不同协议315和模块325的不同的版本之间通信连接。
因此,块405还可能参考服务例程管理器220、主机应用以及将多个协议315注册到服务415中的内插附件应用中的至少一个。被注册到服务415中的多个协议315可被指定为模块间通信的约束条件,包括例如:执行环境间协议(即在一个受管的执行环境和一个不受管的执行环境之间);隔离构件间协议;进程间协议;以及机器间协议。
块410可能参考主机应用和内插附件应用中的至少一个,这两个应用指定或者定义了配置和装配一个或多个节点到节点通信流水线的参数。例如,一个主机应用可以指定在其上要配置和装配一个或多个节点到节点通信流水线300的实现的至少一个主机视图模块305、一个或多个约束条件以及至少一个内插附件视图模块325中。这一个或多个约束结合主机视图模块305和内插附件视图模块325可足以标识一个适当的协议315。但是更有可能的是,如上述的那样,主机应用可以指定模块305、315和325中一个或多个的部分组合。这样,作为一个示例,块410可以更加具体地参考一个主机应用,该主机应用指定或者定义了配置和装配一个或多个节点到节点通信流水线的主机视图模块305和协议315。
此外,对于在块410中为服务415指定或者定义的参数而言,可为要在其上配置或装配一个或多个节点到节点通信流水线300的实现的主机视图模块305、协议315和内插附件视图模块325中任何一个指定一个或多个约束条件。约束条件是参数,这些参数可以包括将由节点到节点通信流水线上的节点之间的协议来履行的任何用户定义的属性。例如,这些约束条件可以指定或定义运行所需的许可和由所配置和装配的节点到节点通信流水线的实现上所指定或定义的协议315支持的隔离边界。这样的隔离边界的示例可以涉及本地边界、共享隔离构件、私有隔离构件,以及其它进程。
服务415可以包括在部署在对应于主机应用或内插附件应用中任一个的执行环境中的数据库、注册表,和文件系统中的任何一个。或者,只要服务415能够访问来配置和装配的流水线300,服务415可以被部署在任何设备基于网络的位置中。正如之前说明的那样,服务415可用作用于配置和装配节点到节点通信流水线300的多个实现的所注册模块、参数和约束条件的储存库。
块420可以参考以下配置和装配节点到节点通信流水线300的一个或多个实现的单个或多种组合的编译器210、服务例程管理器220或执行模块225。更加具体的是,可通过如由块410处输入到服务415的参数和任何约束条件所指定或定义的串接一个或多个主机到协议适配器310、协议315和协议到内插附件适配器320来配置流水线300。
到目前为止关于处理流程400的示例所述,,可在块420处配置和装配一个三级流水线300。但是,特别是考虑到主机视图对象305和内插附件视图对象325的大量可能版本,节点到节点通信流水线300的可选实现可以构想一个或多个主机到协议适配器310或者一个或多个协议到内插附件适配器320。这样,可以构想到数百个三级或四级流水线300的排列。虽然本实现可以支持五级或更多级流水线300,但是基于所注册的模块以及所指定的参数和约束条件的可能排列的数目会成指数地增长。所以,尽管有可能,但这样的流水线所需的资源消耗可能妨碍这些实现。
块425可以参考以下在块420处激活所配置和装配的一个或多个流水线300的单个或多种组合的服务例程管理器220或执行模块225。更加具体的是,当主机视图对象305确定至少一个节点到节点通信流水线300的实现满足为服务415指定或定义的参数和任何约束条件,那么为流水线300上的通信处理创建隔离边界。这样的隔离边界可以包括一个单独的隔离构件(即应用域)或进程。
在激活之后,可加载流水线300的各模块。这就是说,可加载表示已经从服务415中检索到的模块的元数据。这样的加载延迟可以被认为是因为内插附件可能由第三方提供从而信任层可能失去而采取的安全措施。
通过以上关于图1至图4的描述,用于运行时执行环境的模块初始化可以依据与其中加载的可执行代码相关联的数据来配置。但是,在此说明的示例实现不仅限于图1的环境、图2和图3的组件以及图4的过程。模块初始化120(见图1)可以由图2和图3中说明的组件的多种组合来实现,且可以按照图4中说明的块的多种顺序来实现。
此外,上述任何示例和实现的计算机环境可以包括一个计算设备,此计算设备可以拥有例如一个或多个处理器或处理单元、一个系统内存和用来耦合多个系统组件的系统总线。
计算设备可以包括多个计算机可读介质,包括易失性和非易失性介质、可移动和不可移动介质。系统内存可以包括易失性内存形式的计算机可读介质,例如随机存取存储器(RAM);和/或非易失性内存,例如只读存储器(ROM)或者闪存RAM。可以理解,可以使用可存储能被计算机访问的数据的其它类型的计算机可读介质来实现示例计算系统和环境,这些其它类型的计算机可读介质诸如:盒式磁带或其它的磁存储设备、闪存卡、CD-ROM、数字通用盘(DVD)或其它光存储、电可擦除可编程只读存储器(EEPROM)等在本说明书全文中对“一个示例,”“可选的示例,”“至少一个示例,”“一个实现,”或“一个示例实现”进行了参考,指的是具体描述的特征、结构或特性被包括在本发明的至少一个实现中。这样,对于这些短语的使用可以指的是多于一个的实现。而且,所述特征、结构或特性可以在一个或多个实现中以任何适合的方式组合。
然而,相关领域的技术人员可以认识到,可以不用一个或多个特殊的细节或者使用其他的方法、资源、材料来实现代码模块初始化。在其它示例中,没有详细地展示或描述公知的结构、资源或操作,仅为了避免模糊这项发明的的方面。
虽然图示和描述了代码模块初始化的示例实现和应用,但是可以理解,本发明不仅限于所述的精确配置和资源。对于本领域的技术人员而言显而易见的多种修改、变化和变更可以在不背离之前说明和之后要求的本发明范围的情况下而对此处公开的本发明的方法和系统的安排、操作和细节进行。

Claims (17)

1.一种用于节点到节点通信流水线的方法,包括:
指定(410)用于节点到节点流水线实现的至少一个参数;
访问(420)一服务(415),以预定顺序配置具有满足所指定的参数的模块的节点到节点流水线;
其中所述流水线包括第一节点API实现型适配器模块、第二节点API实现型适配器模块、以及协议约束条件模块,其中所述第一节点API实现型适配器模块位于第一节点API和所述协议约束条件模块之间,使得所述第一节点API能与所述协议约束条件模块通信,并且,所述第二节点API实现型适配器模块位于所述协议约束条件模块和第二节点API之间,使得所述第二节点API能与所述协议约束条件模块通信;
其中第一节点API实现型适配器模块的多个版本、第二节点API实现型适配器模块的多个版本以及多个协议约束条件模块被注册到所述服务中,其中所述第一节点API实现型适配器模块的每个版本能在所述第一节点API的一对应的版本和对应的协议约束条件模块之间通信连接,并且所述第二节点API实现型适配器模块的每个版本能在所述第二节点API的一对应的版本和对应的协议约束条件模块之间通信连接。
2.如权利要求1所述的方法,其中所述至少一个参数包括节点应用的API。
3.如权利要求1所述的方法,其中所述至少一个参数包括以下中的至少一个:节点应用的API、对等应用的API、或协议约束条件。
4.如权利要求1所述的方法,其中所述至少一个参数指定约束条件,所述约束条件包括以下中的一个:跨隔离构件兼容性、跨进程兼容性、或跨机器兼容性。
5.如权利要求1所述的方法,其中一个节点是主机应用,而另一个节点是内插附件应用。
6.一种用于节点到节点通信流水线的方法,包括:
注册(405)可以被用来装配节点到节点通信流水线的模块;
接收(410)至少一个参数,以定义一个特定的节点到节点通信流水线;以及
使用遵循所述参数的模块装配(420)所述特定的节点到节点通信流水线的至少一个版本;
其中所述可以被用来装配节点到节点通信流水线的模块包括至少一个第一节点到协议适配器模块、协议模块、以及至少一个协议到第二节点协议适配器模块,其中所述第一节点到协议适配器模块位于第一节点API和所述协议模块之间,使得所述第一节点API能与所述协议模块通信,并且,所述协议到第二节点协议适配器模块位于所述协议模块和第二节点API之间,使得所述第二节点API能与所述协议模块通信;
其中第一节点到协议适配器模块的多个版本、协议到第二节点协议适配器模块的多个版本以及多个协议模块被注册到服务中,其中所述第一节点到协议适配器模块的每个版本能在所述第一节点API的一对应的版本和对应的协议模块之间通信连接,并且所述协议到第二节点协议适配器模块的每个版本能在所述第二节点API的一对应的版本和对应的协议模块之间通信连接。
7.如权利要求6所述的方法,其中所述方法至少部分地在所述服务处执行。
8.如权利要求6所述的方法,其中所述节点到节点通信流水线是协议间通信流水线。
9.如权利要求6所述的方法,其中所述节点到节点通信流水线是从主机应用API到内插附件应用API实现的协议间通信流水线。
10.如权利要求6所述的方法,其中所述至少一个参数包括以下中的至少一个:第一节点应用API、第二节点应用API、或者协议间约束条件。
11.如权利要求6所述的方法,其中所述至少一个参数包括协议间约束条件,所述协议间约束条件包括跨隔离构件兼容性、跨进程兼容性、或跨机器兼容性中的一个。
12.如权利要求6所述的方法,其中所述至少一个参数包括协议间约束条件,所述协议间约束条件指定在受管的执行环境中的第一节点与在不受管的执行环境中的第二节点进行通信。
13.如权利要求6所述的方法,其中所述方法以指定的顺序装配遵循所指定的参数的模块。
14.一种用于节点到节点通信流水线的系统,其包括:
用于注册(405)在装配节点到节点通信流水线时可用的模块的装置;
用于为指定的节点到节点通信流水线指定一个或多个参数的装置;
用于把满足所述一个或多个参数的所注册模块中的各种模块装配(420)成所指定的节点到节点通信流水线的一个或多个版本的装置;以及
用于激活(425)一个或多个所指定的节点到节点通信流水线的已装配版本的装置;
其中所指定节点到节点通信流水线包括以下中的至少一个:主机API到协议适配器、协议、和协议到内插附件适配器,其中所述主机API到协议适配器位于主机API和所述协议之间,使得所述主机API能与所述协议通信,并且,所述协议到内插附件适配器位于所述协议和内插附件API之间,使得所述内插附件API能与所述协议通信;
其中主机API到协议适配器的多个版本、协议到内插附件适配器的多个版本以及多个协议被注册到所述服务中,其中所述主机API到协议适配器的每个版本能在所述主机API的一对应的版本和对应的协议之间通信连接,并且所述协议到内插附件适配器的每个版本能在所述内插附件API的一对应的版本和对应的协议之间通信连接。
15.如权利要求14所述的系统,其中所述一个或多个参数包括以下中的至少一个:主机应用的API、内插附件应用的API、或协议间约束条件。
16.如权利要求14所述的系统,其中所述一个或多个参数包括至少一个协议间约束条件,所述协议间约束条件包括以下中的一个:跨隔离构件兼容性、跨进程兼容性、或跨机器兼容性。
17.如权利要求14所述的系统,其中所指定节点到节点通信流水线从受管的执行环境中的主机API延伸到在不受管的执行环境中的内插附件API。
CN2006800255288A 2005-07-14 2006-06-07 节点到节点通信流水线 Active CN101495987B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/181,614 2005-07-14
US11/181,614 US7634578B2 (en) 2005-07-14 2005-07-14 Node-to-node communication pipelines
PCT/US2006/022230 WO2007011471A2 (en) 2005-07-14 2006-06-07 Node-to-node communication pipelines

Publications (2)

Publication Number Publication Date
CN101495987A CN101495987A (zh) 2009-07-29
CN101495987B true CN101495987B (zh) 2012-04-18

Family

ID=37662917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800255288A Active CN101495987B (zh) 2005-07-14 2006-06-07 节点到节点通信流水线

Country Status (5)

Country Link
US (1) US7634578B2 (zh)
EP (1) EP1902379B1 (zh)
JP (1) JP2009501385A (zh)
CN (1) CN101495987B (zh)
WO (1) WO2007011471A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
GB2487357A (en) * 2011-01-12 2012-07-25 Promethean Ltd Embedding application functionality within a user interface of a second application for ease of user operation
US9203780B2 (en) * 2012-01-27 2015-12-01 Microsoft Technology Licensing, Llc Techniques to distribute messages using communication pipelines
US11010212B2 (en) * 2019-06-13 2021-05-18 Microsoft Technology Licensing, Llc System and method for supporting and negotiating multiple API versions across multiple products

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004001601A2 (en) * 2002-06-20 2003-12-31 International Business Machines Corporation Method and system for transaction pipeline decomposition
CN1534533A (zh) * 2003-03-26 2004-10-06 流的邮件处理流水线
CN1573756A (zh) * 2003-06-23 2005-02-02 微软公司 分布式查询引擎流水线方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2383649A1 (en) * 2001-10-02 2011-11-02 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US20040034860A1 (en) * 2002-08-15 2004-02-19 Microsoft Corporation Dynamically extensible application program framework including message and notification routing
JP2004310545A (ja) * 2003-04-08 2004-11-04 Matsushita Electric Ind Co Ltd データ送受信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004001601A2 (en) * 2002-06-20 2003-12-31 International Business Machines Corporation Method and system for transaction pipeline decomposition
CN1534533A (zh) * 2003-03-26 2004-10-06 流的邮件处理流水线
CN1573756A (zh) * 2003-06-23 2005-02-02 微软公司 分布式查询引擎流水线方法和系统

Also Published As

Publication number Publication date
EP1902379B1 (en) 2018-07-25
JP2009501385A (ja) 2009-01-15
EP1902379A2 (en) 2008-03-26
WO2007011471A2 (en) 2007-01-25
WO2007011471A3 (en) 2009-04-16
US7634578B2 (en) 2009-12-15
EP1902379A4 (en) 2014-08-20
US20070016691A1 (en) 2007-01-18
CN101495987A (zh) 2009-07-29

Similar Documents

Publication Publication Date Title
Crnkovic Component‐based software engineering—new challenges in software development
US7630877B2 (en) Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US8386636B2 (en) Business process system management method
CN101449263B (zh) 用于实例化网络上的服务的以计算机实现的方法和装备
Taherkordi et al. Optimizing sensor network reprogramming via in situ reconfigurable components
US20080229303A1 (en) Method, system and computer program for distributing customized software products
US20130290239A1 (en) Method and a system for service lifecycle management in networked environments
WO2016159949A1 (en) Application analyzer for cloud computing
CN102132268A (zh) 数据中心编程模型
CN104331366A (zh) 一种测试用例设计效率提升方法及系统
CN101288070A (zh) 可扩展元数据
CN109871241A (zh) 一种跨环境应用服务器的配置方法
CN101495987B (zh) 节点到节点通信流水线
CN116783581A (zh) 在云平台中配置的数据中心上部署软件发布
CN101257494A (zh) 用于访问在计算机网络中实现的资源的方法和系统
Bosch et al. Product instantiation in software product lines: A case study
Akkerman et al. Infrastructure for automatic dynamic deployment of J2EE applications in distributed environments
Wirsing et al. Sensoria patterns: Augmenting service engineering with formal analysis, transformation and dynamicity
Rouvoy et al. Music: an autonomous platform supporting self-adaptive mobile applications
Heydarnoori et al. Towards an automated deployment planner for composition of web services as software components
Lan et al. Architecture based deployment of large-scale component based systems: The tool and principles
KR20040079337A (ko) 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리
van der Meer et al. Ubiquitous Smart Space Management
Bencomo et al. Genie: a domain-specific modeling tool for the generation of adaptive and reflective middleware families
Keznikl et al. Automated resolution of connector architectures using constraint solving (ARCAS method)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.