CN1816048A - 通信信道模型 - Google Patents

通信信道模型 Download PDF

Info

Publication number
CN1816048A
CN1816048A CNA2006100025061A CN200610002506A CN1816048A CN 1816048 A CN1816048 A CN 1816048A CN A2006100025061 A CNA2006100025061 A CN A2006100025061A CN 200610002506 A CN200610002506 A CN 200610002506A CN 1816048 A CN1816048 A CN 1816048A
Authority
CN
China
Prior art keywords
communication
message
channel
semanteme
standard 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.)
Granted
Application number
CNA2006100025061A
Other languages
English (en)
Other versions
CN1816048B (zh
Inventor
B·H·洛夫林
D·A·沃滕代克
E·L·维恩古尔德
E·B·克里斯滕森
K·D·沃尔夫
M·S·韦纳尔
S·科恩
S·H·菲瑞斯
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 CN1816048A publication Critical patent/CN1816048A/zh
Application granted granted Critical
Publication of CN1816048B publication Critical patent/CN1816048B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Abstract

本发明提供一种信道模型,该信道模型能够生成带有可插入模块信道组件的运行库通信信道。这些信道组件实现一组标准接口中一个,这些标准接口允许处理要以多态方式表示的组件之间的通信语义的细节。消息和相应的通信语义使用标准接口递归地穿过信道组件,由此从如何执行通信语义的特定实现细节中抽象其他模块和组件。然后,把该消息发送到下一个适合的模块,用于进一步处理,或者可在该特定组件或模块处完成该处理。还要注意,如上所述,该消息也可在服务侧以类似方式去复用。

Description

通信信道模型
相关申请的交叉参考
技术领域
本发明一般涉及面向服务的系统中端点之间的消息传递。更为具体地,本发明提供一种带有使用一组标准接口其中一个的可插入模块信道组件的运行库通信信道。这种系统允许处理要以多态方式表示的信道组件之间的通信语义的细节。
背景技术
计算机系统和相关计数影响了社会的许多方面。实际上,计算机系统处理信息的能力已经改变了我们生活和工作的方式。现在,计算机系统很普通地执行许多任务(例如,工作处理、日程表、数据库管理等等),这些任务在计算机系统出现以前是手工完成的。最近,计算机系统已经彼此连接,以形成计算机网络,通过网络计算机系统能电气通信以共享数据。面向服务的系统(例如Web服务)在推动计算机系统之间的这种通信以及在彻底转变我们建立和使用软件的方式方面,已经称为一种驱动力。
面向服务的架构使应用程序共享数据,且更为强大地,从其他应用程序的调用能力,而不管那些应用程序如何建立、它们运行在何种操作系统或平台上、以及使用何种设备来访问它们。一般地,这些系统在因特网上通过包括SOAP(简单对象访问协议)、XML(可扩展标记语言)、UDDI(通用描述发现集成)、WSDL(Web服务描述语言)等等的工业标准协议来调用。尽管这些服务仍彼此独立,但它们能松散链接成执行特定任务的合作组。
经常,面向服务的网络中的电气通信包括向服务器计算机系统处的网络服务(例如,Web服务)(其后称“服务”)请求访问的客户计算机系统(其后称“客户机”)。因此,客户机向服务发送请求,用于对其系统资源的特定访问,其中如果该客户机被授权且经过验证,则该服务响应,例如,用提供想要的信息的响应消息。当然,客户机和服务之间的其他消息交换模式(以下描述的其他通信语义也是如此)是可用的,且包括简单的单个消息,和更为复杂的多消息交换,象,例如,通知、恳求-响应、pub-sub模式、轮询、排队以及其他。
为了生成服务,开发者根据指定的编程模型写源代码(例如,C#、C++、或Visual Basic)。然后,该源代码能被编译成服务类型,且在服务器运行库内执行该服务类型,以向客户机消费者提供该服务。然而,不同的编程模型能以不同方式实现分布式消息传递功能。例如,使用具有单独方法的单个接口,一个编程模型能实现请求消息和相应的应答消息两者。这单个接口能有一种用于请求消息的方法,和用于响应的应答消息的第二种不同的方法。
不同的编程模型也能根据不同的通信语义来配置。例如,每个模型能有不同的编码、传输、安全选项、可靠的消息传递选项、消息登录选项、连接节流选项等等。因此,设计用于实现相同功能的两个服务(例如,执行数学操作)可不同地实现该功能。
进一步,分布式应用程序在其只允许与其服务运行库紧密连接的一种编程模型的编程模型中,一般是刚性的。因此,为了兼容性,一般要求客户机运行库(例如,在服务消费者处)使用根据与服务器运行库相同的编程模型开发的客户机程序或模型。例如,如果使用用于请求和应答消息的单独接口开发一种服务,或者该服务使用特定的消息编码和传输协议,则该服务的消费者也必须实现它们。不使用根据相同的编程模型开发的客户机程序或模型,会阻止客户机运行库与服务运行库通信。
这种刚性和与由服务开发者指定的特定通信语义的紧密连接有若干固有的缺点。例如,一般,公司使用私有网络通信语义,以在其自己的网络内分发服务。它们可以有对安全、可靠性、使用的传输和编码类型等等的特定请求。如果该公司得到另一个公司(例如,通过合并或征购),则被获得的公司系统必须也能实现这些特定的通信语义或协议。然而,这种要求是非常不可能的,且因此,必须重新写或配置被获得公司的应用程序(或获得公司的应用程序),以符合特定的通信语义。
可容易地看到,这种改写和/或再配置是昂贵的,且不能正确反映面向服务(例如,Web服务)的架构的根本目的,这种架构是要以环境不可知方式,向大量设备提供服务。因此,存在一种对以可扩展和可插入方式建模通信语义的需要,以便使系统对改变需要更为灵活。
发明内容
通过本发明的各种例子实施例,可以克服当前分布式系统的以上标识的缺陷和缺点。例如,本发明提供一种通过递归地使消息穿过运行库通信信道的可插入模块信道组件来配置消息在端点之间传递的方法。每个可插入模块信道组件实现一组标准信道其中一个,这些信道允许处理要以多态方式表示的组件之间的通信语义的细节。
一个例子实施例中,在运行库通信信道中的第一信道处接收通信语义。该通信语义至少包括一种消息交换模式,且通过基于该消息交换模式从多个标准接口中选择的标准接口接收该通信语义。也通过该标准接口接收消息,该消息是消息交换模式的一部分。随后可对消息执行至少一部分通信语义,其中标准接口从与运行库通信信道交互的其他组件或模块中抽象实现细节,用于对消息执行至少一部分的通信语义。也可用类似方式使用信道组件来执行该通信语义的至少一部分的去复用。
其他例子实施例提供一种配置成接收用于对消息去复用的运行库通信的信道模型。这个实施例中,在听众处接收一种用于接受运行库通信信道的请求。然后接受运行库通信信道,并对应于至少包括一种消息交换模式的通信语义。此后或之前,接收已经根据通信语义已经处理且为该消息交换模式一部分的消息。此外,创建用于根据该通信语义对消息去复用的服务通信信道,且把该通信语义传递给服务通信信道中的第一信道组件。通信语义通过基于消息交换模式从多个标准接口选择的标准接口传递。然后,通过标准接口也把该消息传递给第一信道组件,用于对至少一部分的通信语义去复用,其中标准接口从与运行库通信信道交互的其他组件或模块中抽象实现细节,用于对消息执行至少一部分的通信语义。
本发明额外的特征和优点将在其后的描述中提出,且部分通过描述是明显的,或由本发明的实践得知。通过在附加的权利要求中特别指出的手段和组合,可以认识并获得本发明的这些特征和优点。从下面的描述和附加的权利要求中,本发明的这些以及其他特征将变得更为明显,或可从其后提出的本发明的实践中获得这些特征。
附图说明
为了描述其中可以获得本发明的上述以及其他优点和特征的方式,将参考附图说明的特定实施例来描绘上面简要描述的本发明的更为具体的描述。应该理解,这些图只是描述了本发明的典型实施例,且并不因此认为它们限定了本发明的范围,将通过使用伴随的附图用额外的特征和细节来描述和说明本发明。
图1A说明具有根据本发明的实施例生成的运行库通信信道的分布式系统;
图1B说明根据例子实施例,运行库通信信道组件之间的一组标准接口的其中一个的使用;
图1C说明根据示例性的实施例的公共状态机器转换;
图2说明根据示例性的实施例,配置用于在端点之间传递的消息的方法的流程图;
图3说明根据示例性的实施例,用于接受运行库信道的方法的流程图;
图4说明根据示例性的实施例,对用于在端点处的消息去复用的方法的流程图;
图5说明提供用于本发明的适合的操作环境的例子系统。
具体实施例
本发明扩展到用于带有使用一组标准接口其中一个的可插入模块信道组件的运行库通信信道的方法、系统和计算机程序产品。本发明的实施例可包含专用或通用的计算机,包括各种计算机硬件,如以下更为详细地讨论。
一般地,本发明提供能够生成带有可插入模块信道组件的运行库通信信道的信道模型。这些信道组件实现一组标准接口其中一个,这些标准接口允许处理要以多态方式表示的组件或模块之间的通信语义的细节。图1A说明在面向服务的系统中,这种示例性的通信信道的特定实例。
在分布式系统100中,客户机或代理(proxy)105希望访问由服务160提供的服务,并向服务160发送消息110,用于处理。广泛地说,服务160是端点155的集合,且端点155表示在能发送并接受某些类型的消息的位置处的一段代码,。为了访问这些服务,客户机主动向信道工厂130请求信道。信道工厂130提供用于创建到服务160的端点155的信道的机制。信道,例如,运行库通信信道120,表示用于在客户机105和服务160之间交换消息的核心抽象。正如下面将要更为详细讨论的,运行库通信信道120在使用一组标准接口其中一个的各种信道组件125和模块之间通信,由此从分布式系统中的其他组件125和模块中(注意,这里术语“组件”和“模块”可交换使用)抽象每个信道组件125中的特定的实现细节。
信道工厂130创建运行库通信信道120并把句柄140(它可能是运行库通信信道165或其标识符)返回给客户机105。客户机105然后可使用运行库通信信道,以根据一般由服务开发者导出的特定的通信语义(注意,然而,该通信语义也可以是缺省值或由服务侧的系统管理员覆盖的值),向服务160传递消息110。示例性的实施例提供根据各种通信语义,例如它们实现的消息交换模式(MEP)所类型化或创建的信道120、125。消息交换模式表示一种用于客户机105和服务160、或各种情况可能有的其他服务端点之间的消息通信的模式。当前实施例支持多个原语消息交换模式,包括但不限于单向(例如,输出信道和输入信道)、请求-应答(请求信道和应答信道)、以及双工消息传递(双工信道)。注意,这些MEP是完全可扩展的。因此,上述MEP的子集或派生可根据需要来实现。此外,如下面将要更为详细描述的,这些MEP的每一个都是会话性质的。
其他的例子实施例提供了可根据其他通信语义,如可靠性(例如,WS-ReliableMessaging、HTTPR等等)、安全性(例如,WS-Security、HTTPS、签名类型、编码类型等等)、该信道是否支持单播或多播、是否支持会话、交易支持、排队、公布并订阅、编码机制(例如SOAP封装、二进制、文本等等)、以及使用哪种传输用于和服务交换消息(例如,HTTP(超文本传输协议)、FTP(文件传递协议)、SMTP(简单消息传递协议)、TCP(传输控制协议)、UDP(用户数据报协议)、THE SPECIFICATION(短消息服务)、SNA(系统网络结构)、GPRS(通用分组无线服务)等等)来类型化和创建包括单独信道组件125的运行库通信信道120。
也要注意,有许多其他类型的通信语义可用于类型化运行库通信信道120。因此,以上列表并不意味着是包括一切的,且对用于创建或类型化运行库通信信道120的通信语义的任何特定的参考只是用于说明性的目的,且并不意味着限制或缩小本发明的范围,除非明确声称。
不管如何类型化和创建运行库通信信道120,信道120表示输入/输出(I/O)抽象,且对以下行为负责:(1)接受应用数据或消息110(例如,SOAP消息);(2)实现各种通信语义(这里作为可靠性信道组件125、安全信道组件125和传输信道组件125示出);(3)根据信道组件125格式化消息110用于传输;以及(4)通过“电线”传递消息。
在服务侧160,听众工厂170在特定的网络地址上收听新消息如消息110,并提供用于创建与服务的特定端点155通信的听众145的机制。每个特定的听众145有唯一的消息过滤器150,以便从听众工厂170接收的与特定听众145的过滤器匹配的消息110被传递给该听众145。换言之,听众工厂170使用去复用器(demux)175对消息110的一部分去复用,并基于消息过滤器150向适当的听众145发送消息。
听众145表示在服务侧160上倾听并接受新的运行库通信信道120的抽象。当端点155就绪时,它会呼叫“接受信道”。当听众145检测到新的信道120时,对“接受信道”的呼叫完成,通知适当的端点155出现新的信道120。那么,可以用运行库通信信道120的相反方式使用服务通信信道147,以便在消息110上对通信语义去复用,以便端点155适当地处理消息110。换言之,消息110递归地穿过服务通信信道147的可插入模块信道组件,用于在运行库通信信道120处实现的通信语义的去复用。
注意,尽管创建了不同的通信信道,但会话通信信道可能与运行库通信信道120是相同的。换言之,听众145可使用相同的运行库通信信道120,只是以相反次序。因此,服务通信信道147应被广泛解释为包括运行库通信信道120。
其他例子实施例提供了上述消息交换模式能有无连接信道和面向连接信道(例如,会话信道)两者。一般地,会话是在消息交换模式中的所有参与者之间共享上下文。会话可有三个主要组件:(1)会话建立-用于建立所有参与者之间的共享上下文的进程;(2)消息相关-把一组消息和共享上下文的实例相关的方法;以及(3)会话终止-用于终止在所有参与者之间共享上下文的进程。注意,会话建立和会话终止都可以是显式或隐式。即,可以有显式会话建立(例如,以可靠性和TCP方式),或者会话建立可以是隐式(例如,使用相关ID)。示例性的实施例也提供直接会话(其中会话的寿命与信道120的生命期有关)和排队会话(其中这两个生命期是无关的)的会话信道。
对于无连接信道,示例性的实施例在客户机105呼叫或请求运行库通信信道120的次数和服务160做出呼叫或接受信道120的次数之间(其中,一般地,通过这些类型的信道120传递的所有消息被认为是数据报)不提供相关性。对于“直接”会话,在客户机呼叫或请求到服务160的信道135的次数和服务160呼叫“接受信道”的次数之间一般有一对一的对应。对于“排队”会话,涉及在各方之间有共享的单个会话。信道可附属于会话,或脱离会话,而不改变会话的状态。因此,在客户机105请求运行库通信信道120的次数和服务160接受信道120的次数之间没有对应。
示例性的实施例提供通信对象(例如,信道工厂130、听众工厂170、听众145和信道120)共享公共状态机器。图1C示出公共状态机器转换的例子,且该机器有三个主要的状态和三个中间状态。一般地,通信对象在创建192状态开始。在创建192状态,可配置对象、可出现事件注册等等。一旦用户完成配置对象,用户可使用Open()调用把该对象转换成打开196状态。这会导致对象为活动和可用的。注意,创建192状态和打开196状态中间有中间状态,它是对象在Open()调用开始和Open()调用完成之间的状态。因此,通信对象可被锁定,且可能对它起作用,但应该还不能接受I/O。
对象可以优美或不优美的方式终止使用。对象可通过从打开196状态呼叫Close()事件来优美地关闭,这会使对象从打开196状态转换成关闭198状态。或者,错误条件或外部刺激可导致对象不优美地异常中断。因此,如图1C所记录的,在任何主要状态,可做出Abort()调用,以把通信对象从当前状态转换成关闭198状态。注意,在处理数据之前会出现错误,且处理消息110期间的这些错误通过标准异常传播。还要注意,会话故障也可通过Abort()事件传播。
图1B说明根据例子实施例的运行库通信信道120的更为详细的模型。如所示,通信信道120内的每个对象使用标准接口180通信。标准接口180是把通信语义从一个模块165或组件185、190传递到另一个模块或组件的简单接口。此外,标准接口180是基于任何前述的消息交换模式选择的一组标准接口其中一个。各种信道组件185、190,或甚至是应用模块165,可执行通信语义的各部分。剩余的部分则可通过标准接口180传递给通信信道120内随后的信道组件185、190。
注意,各种信道组件185、190的任何一个可完成消息110上的通信语义。例如,如果信道组件是可靠性组件,且消息110是复制的,则该信道组件可通过简单丢弃消息110来完成通信语义。另一个例子可以是在使用显式会话创建的协议中的会话建立,其中存在在较低信道组件(例如,传输信道组件190)之间交换的消息110,而较高信道组件或模块(例如,信道组件185)永远不知道这些消息110。因此,消息110可以通过或可以不通过与运行库通信信道120交互的每个信道组件180、190或其他组件或模块(例如,应用模块165)传播。
例如,可在接收请求-应答和安全的通信语义的应用模块165处接收消息110。应用模块165能使用标准接口180,来通过各种信道组件185、190中继或代表(delegate)这些通信语义,其中每种信道组件是从其他组件185、190或模块165的特定实现细节中抽象出来的。例如,信道组件185可使用,例如WS-Security来实现安全性组件,而传输信道组件190可以是请求-应答传输,例如HTTP。因此,可由通信信道120内的不同信道组件185、190来执行通信语义,而其它组件185、190或模块165是从特定的实现细节中抽象出来的。
因为该层的抽象,所以以多态方式提供了执行特定的通信语义的组件185、190或模块165。因此,作为备选方案,应用模块165可通过标准接口180把相同的通信语义传递给单个信道组件(特别是传输信道组件190),该信道组件可使用,例如HTTPS来执行指示的通信语义。此外,任何数目的通信组件185可通过标准接口180通信,并提供整个通信语义的各个部分。其后,信道组件185、190(或模块,例如,应用模块165)能使剩余部分穿过标准接口180,并从通信语义如何成层的特定实现中抽象出来。
可以看到,每个信道组件185、190是完全可插入的,以便需要新的信道组件185、190或旧的信道组件不想要时,可向整个通信信道120简单插入这些信道组件,或从中拔出。而且,因为以多态方式表示该模型,则信道本身是可扩展的。例如,在以上给出的例子中,请求-应答通信语义可能已经由备选传输,例如TCP来满足,而不必打破该模型。因此,每个信道组件185是完全可扩展和可插入的,由此把通信信道120只与一种消息交换模式绑定。这种完全可扩展和可插入模型有若干优势特征。例如,随着新版本和新的通信语义变为是可用的,则它们可被插入到系统中,而不必打破或重写当前的通信信道120。
尽管如上所述,通信信道与MEP绑定,但消息交换模式本身也是可扩展、可插入的。因此,随着标识并开发新的消息交换模式,这些通信语义也能以与上述方式类似的方式建模或增加。注意,因为每个通信组件185、190是可扩展、可插入的,则本发明并不依赖于任何特定的通信语义,除了特定的消息交换模式。因此,所使用的对通信语义的任何特定的参考只是为了说明目的,且并不意味着限制或缩小本发明的范围,除非明确宣称。
也要注意,信道组件185的顺序是可交换的。例如,用于安全性的信道组件185可在用于可靠性的信道组件185之前发生。然而,这两个信道组件185的顺序可以互换,以便可靠性通信语义出现在安全性通信语义之前。因此,与其他刚性模型不同,当前通信信道是灵活、可升级、可插入且可扩展的。
尽管信道组件185的特定实现细节是从应用模块165中抽象的,但存在应用165需要知道是否支持特定的通信语义的时候。因此,本发明提供信道检查和控制,其中可询问通信信道120内的各种信道组件,以确定它们是否执行整个通信语义的一部分。然后,这个信息中继给应用模块165。注意,尽管应用模块165能确定可以满足通信语义,但它仍可以不知道特定的实现细节,如哪个信道组件185、190将执行通信语义以及如何执行。
注意,在某些消息交换模式,例如,(双工MEP)的事件中,会需要反向的运行库通信信道120。因此,其他例子实施例提供了在接收第一运行库通信信道120的基础上,类型化和/或创建运行库通信信道120。在此实施例中,一旦服务160从客户机105接收并接受运行库通信信道120,服务160和客户机105的角色就颠倒了。特别是,一旦从客户机105接收运行库通信信道,服务160可向信道工厂130请求135信道、接收句柄140、并根据从信道工厂130创建的运行库通信信道120处理应答消息。客户机105然后可根据上述例子实施例对应答消息去复用。
本发明的也可关于包含功能性步骤和/或非功能性动作的方法来描述。下面是在实施本发明中执行的步骤和/或动作的描述。通常,功能性的步骤按照完成结果来描述本发明,而非功能性动作描述用于实现特定结果的更为特定的动作。尽管功能性步骤和/或非功能性动作可用特定顺序描述或宣称,但本发明并不必限定于步骤和/或动作的任何特定顺序或组合。此外,步骤和/或动作在权利要求的叙述中的使用,以及下面对图2到图4的流程图的描述,被用于指示对这种术语的所希望的特定用法。
图2到图4说明用于本发明的各种示例性的实施例的例子流程图。下面对图2到图4的描述有时候参考来自图1A到图1C的相应元件。尽管会参考来自这些图的特定元件,但这些元件只是用于说明的目的,且并不意味着限制或缩小本发明的范围,除非明确宣称。
图2说明配置用于通过递归地使消息穿过运行库通信信道的可插入模块信道组件在端点之间传递的消息的方法200的例子流程图。每个可插入模块信道组件实现多个标准接口其中一个,这些标准接口允许处理要以多态方式表示的组件之间的通信语义的细节。
方法200包括接收动作205,它接收至少包括一种消息交换模式的通信语义。例如,运行库通信信道120中的第一信道组件185可接收包括输入、输出、请求、应答、双工、或用于前述任何一个的会话状态中的一个或多个的通信语义。其他通信语义也包括传输类型、编码类型、单播支持、多播支持、交易支持、安全性支持、保护支持、可靠消息传递保证、公布&订阅支持、以及排队支持。通过基于消息交换模式从多个标准接口中选择的标准接口接收这种通信语义。(注意,“多个”(意思是两个或更多),不是“集”(意思是所有可用的选项),用于下面流程图的描述和权利要求的描述。因此,本发明不要求所有标准接口都是可用于选择的)。
方法200也包括接收动作210,它通过标准接口接收作为消息交换模式的一部分的消息。例如,通信组件185可通过标准接口180接收消息110。其后,方法200也包括执行动作215,它对消息执行通信语义的至少一部分。例如,在上面的例子中,其中通信语义为请求-应答消息交换模式,且安全性(例如,WS-Security)信道组件185可对消息执行通信语义的安全性部分。
注意,标准接口180从与运行库通信信道交互的其他组件或模块中抽象实现细节,用于对消息执行通信语义的至少一部分。例如,从应用模块165、传输信道组件190、以及与运行库通信信道120交互的其他模块或组件中抽象第一信道组件185内的实现细节。
其后,消息110及其剩余的通信语义,如果有的话(或不像之前所述),可被发送到下一个适当的模块或组件,用于进一步处理。例如,通信组件185可通过标准接口180发送消息110和任何剩余的通信语义。这个过程可通过这种模块组件递归执行,直到所有通信语义都已实现,此时,可向服务发送消息110,用于对通信语义去复用。或者,如果第一信道组件185完成通信语义,则消息110将不会向与运行库通信信道120交互的其他信道组件190或模块165传递。
图3说明创建配置成对来自消息的通信语义去复用的服务通信信道的方法300的例子流程图。方法300包括接收动作305,它接收用于接受运行库通信信道的请求。因此,在服务160,听众工厂170或听众145可接受消息110。如果听众工厂170接收消息110,它可使用去复用器对该消息的一部分去复用,并生成适当的听众145。其后,带有适当消息过滤器150的听众可被发送到运行库通信信道120。
方法300也包括接受运行库通信信道的动作310。例如,当端点155就绪时,它会调用“接受信道”,且听众145检测到运行库通信信道120时,该调用可返回。运行库通信信道120与至少包括一种消息交换模式的通信语义对应。这种消息交换模式可以是任何前述的交换模式,或任何新的或其他熟知的消息交换模式。
其后,方法300也包括接收已经根据通信语义处理的消息的动作315。例如,听众145可接收已经根据如可靠性、安全性、以及请求-应答消息交换模式的通信语义处理的消息110。方法300还包括创建服务通信信道的动作320。例如,听众145一旦接收消息和通信语义如消息交换模式,就可创建用于根据该通信语义对消息去复用的服务通信信道147。其后,方法300包括传递动作325,它通过标准接口把通信语义和消息传递给服务通信信道内的第一信道组件,用于对消息110的至少一部分去复用。标准接口180是基于消息交换模式,从多个标准接口中选择的。此外,标准接口180从与服务通信信道120交互的其他组件或模块中抽象实现细节,用于对消息110的至少一部分的去复用。
可用与上述关于运行库通信信道120的方式类似的方式,代表消息和通信语义。然而,随后不是根据通信语义处理消息110,而是对该消息去复用,其中根据通信语义对消息的至少一部分消息去复用。其后,该消息被递归传递给其他模块和组件,用于进一步处理,(例如,该消息可被发送到端点155,用于处理消息并用输出应答)。
更为具体地,如图4所示,本发明提供一种通过递归地使消息穿过服务通信信道的可插入模块信道组件,处理用于在端点处消耗的消息的方法400。与方法300类似,方法400包括接收至少包括一种消息交换模式的通信语义的动作405。如上所述,通过基于消息交换模式从多个标准接口中选择的标准接口接收通信语义。方法400也包括通过标准接口接收作为消息交换模式一部分的消息的动作410。根据各种通信语义,如可靠性、安全性、以及用于消息交换模式的输出来处理消息110。
其后,方法400包括对有关消息的通信语义的至少一部分去复用的动作415。特别是,服务信道147内的信道组件可对消息进行通信语义的至少一部分,如可靠性部分的去复用。标准接口从与服务通信信道交互的其他组件或模块中抽象实现细节,用于对通信语义的至少一部分的去复用。
如前,消息和剩余的通信语义可以或可不被发送到其他信道组件或模块,例如,端点155,用于适当处理。这如前所述以信道组件是否完成了通信语义为条件的(例如,当消息110被丢弃,或只在较低组件之间通信时)。
本发明的范围内的实施例也包括计算机可读的介质,用于在其中携带或存储计算机可执行指令或数据结构。这种计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。仅仅作为例子,而非限制,这种计算机可读介质可包含RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器、或其他磁性存储设备、或可用于携带或存储以计算机可执行指令或数据结构形式,且可由通用或专用计算机访问的想要的程序代码手段的任何其他介质。当通过网络或另一个通信连接(硬线、无线、或硬线或无线的组合)向计算机传送或提供信息时,计算机适当观看作为计算机可读介质的连接。因此,任何这种连接被适当称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围内。计算机可执行指令包括,例如,使通用计算机、专用计算机、或专用处理设备执行特定功能或一组功能的执行和数据。
图5和下面的讨论意图提供其中可以实现本发明的适合的计算环境的简要、一般描述。尽管并未要求,但本发明将在计算机可执行指令如由网络环境中的计算机执行的程序模块的一般上下文中描述。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。计算机可执行指令、相关联的数据结构、以及程序模块代表用于执行这里揭示的方法的步骤的程序代码手段的例子。这种可执行指令或相关联的数据结构的特定顺序代表用于实现以这些步骤描述的功能的相应动作的例子。
本领域的技术人员会认识到,本发明可在带有许多类型的计算机系统配置,包括个人计算机、手提设备、多处理器系统、基于微处理器或可编程的消费电子设备、网络PC、小型机、大型机等等的网络计算环境中实施。本发明也可在分布式计算机环境中实施,其中由通过通信网络链接(由硬线链接、无线链接、或者由硬线或无线链接的组合)的本地或远程处理设备执行任务。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备中。
参考图5,用于实现本发明的示例性的系统包括以常规计算机520形式的通用计算设备,包括处理单元521、系统存储器522、以及连接包括系统存储器522的各种系统组件到处理单元521的系统总线523。系统总线523可以是任何一种类型的总线接口,包括存储器总线或存储器控制器、外围总线、以及使用任何一种总线结构的本地总线。系统存储器包括只读存储器(ROM)524和随机存取存储器(RAM)525。基本输入/输出系统133(BIOS)一般存储在ROM524内,它包括如启动时帮助在计算机520内的元件间传输信息的基本例程。
计算机520也可包括用于从磁性硬盘539中读写的磁性硬盘驱动器527、用于从可移动磁盘529中读写的磁盘驱动器528、以及用于从可移动光盘531,如CD-ROM或其他光学介质中读写的光盘驱动器530。磁性硬盘驱动器527、磁盘驱动器528、以及光盘驱动器530可分别通过硬盘驱动接口532、磁盘驱动接口533、和光盘驱动器接口534连接到系统总线523。这些驱动器及其相关联的计算机可读介质为计算机520提供对计算机可执行指令、数据结构、程序模块和其他数据的非易失存储。尽管这里描述的示例性的环境使用磁性硬盘539、可移动磁盘529和可移动光盘531,但可以使用用于存储数据的其他类型的计算机可读介质,包括磁性磁带、闪存卡、数字多功能盘、柏努利(Bernoulli)磁带、RAM、ROM等等。
包含一个或多个程序模块的程序代码手段可存储在硬盘539、磁盘529、光盘531、ROM524或RAM525上,包括操作系统535、一个或多个应用模块536、其他程序模块537、以及程序数据538。用户可通过键盘540、定点设备542、或其他输入设备(未示出),如话筒、操作杆、游戏垫、圆盘式卫星天线、扫描仪等等向计算机520输入命令和信息。这些以及其他输入设备经常通过耦合到系统总线523的串行接口546连接到处理单元521。或者,输入设备可由其他接口,如并行接口、游戏口或通用串行总线(USB)连接。监视器547或另一个显示器设备也通过接口,如视频适配器548,连接到系统总线523。除了监视器外,个人计算机一般包括其他外围输出设备(未示出),如扬声器和打印机。
计算机520可以工作在使用到一个或多个诸如远程计算机549a和549b的远程计算机的逻辑连接的网络化环境中。远程计算机549a、549b每一个可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且一般包括与计算机520相关的许多或所有上述元件,尽管图5中仅说明了存储器存储设备550a和550b及其相关联的应用程序536a和536b。图5所示的逻辑连接包括局域网(LAN)551以及广域网(WAN)552,它们只是作为例子,而非限制。这种网络环境常见于办公室范围或企业范围的计算机网络、内联网以及因特网。
当用于LAN网络环境时,计算机520通过网络接口或适配器553连接到局域网551。当用于WAN网络环境时,计算机520一般包括调制解调器554、无线链接、或用于在诸如因特网的广域网552上建立通信的其他装置。调制解调器554,可能是内置或外置的,它通过用户输入接口546连接到系统总线523。在网络化环境内,所述与个人计算机520相关的程序模块,或其中的一部分可能存储在远程存储器存储设备中。应该认识到,所示的网络连接是示例性的,在计算机间建立通信的其他手段也可以使用。
本发明可以其他特定形式体现,而不会脱离其精神或必要特征的范围。所述的实施例应被认为在所有方面只是说明性的,而并非限定性的。因此,本发明的范围是由附加的权利要求而非前述描述所指示。落入权利要求等价物的意思和范围内的所有变化都包含在其范围内。

Claims (20)

1.在分布式系统中,一种通过递归地使消息穿过运行库通信信道的可插入模块信道组件来配置消息在端点之间传递的方法,其中,每个可插入模块信道组件实现多个标准接口的其中一个,这些标准接口允许处理要以多态方式表示的其他组件或模块之间的通信语义的细节,该方法包含下列动作:
在运行库通信信道中的第一信道组件接收至少包括消息交换模式的通信语义,通过基于该消息交换模式从多个标准接口中选择的标准接口接收该通信语义;
通过该标准接口接收作为消息交换模式的一部分的消息;以及
对该消息执行通信语义的至少一部分,其中标准接口从与运行库通信信道交互的其他组件或模块中抽象用于对消息执行通信语义的所述至少一部分的实现细节。
2.如权利要求1所述的方法,还包含以下动作:
向下一个适合的模块或组件发送该消息,用于进一步处理。
3.如权利要求2所述的方法,还包含以下动作:
在运行库通信信道中的第二信道组件接收通信语义的剩余部分,通过标准接口接收该剩余通信语义;
通过该标准接口接收作为消息交换模式的一部分的消息;
对该消息执行剩余通信语义的至少一部分,其中标准接口从与运行库通信信道交互的其他组件或模块中抽象用于对消息执行剩余通信语义的所述至少一部分的实现细节。
4.如权利要求3所述的方法,其特征在于,第一信道组件和第二信道组件之间的处理顺序是可互换的。
5.如权利要求1所述的方法,其特征在于,从应用模块中接收消息和通信语义。
6.如权利要求5所述的方法,其特征在于,在从应用模块中接收消息和通信语义之前,该应用模块确定运行库通信信道支持该通信语义。
7.如权利要求1所述的方法,其特征在于,执行通信语义的动作在第一信道组件处完成,以便该消息不被传递给与运行库通信信道交互的其他模块或组件。
8.如权利要求1所述的方法,其特征在于,从输入、输出、请求、应答或双工中选择该消息交换模式。
9.如权利要求1所述的方法,其特征在于,响应于从客户机接受先前的运行库通信信道,在服务上创建运行库通信信道。
10.如权利要求1所述的方法,其特征在于,所述通信语义还包括传输类型、编码类型、单播支持、多播支持、会话支持、交易支持、安全支持、保护支持、可靠消息传递保证和排队支持中的一个或多个。
11.在分布式系统中,一种通过递归地使消息穿过服务通信信道的可插入模块信道组件来处理消息以在服务内的端点处消耗的方法,其中每个可插入模块信道组件实现多个标准接口中其中一个,这些标准接口允许处理要以多态方式表示的组件或模块之间的通信语义的细节,该方法包含以下动作:
在听众处接收用于接受运行库通信信道的请求;
接受相应于至少包括消息交换模式的通信语义的运行库通信信道;
接收已经根据通信语义处理且为消息交换模式的一部分的消息;
创建服务通信信道,用于根据通信语义对该消息去复用;
通过基于消息交换模式从多个标准接口中选择的标准接口,把该通信语义传递给服务通信信道中的第一信道组件;以及
通过标准接口把该消息传递给第一信道组件,用于对至少一部分通信语义去复用,其中该标准接口从与服务通信信道交互的其他组件或模块中抽象用于对消息进行至少一部分通信语义的去复用的实现细节。
12.如权利要求11所述的方法,其特征在于,通信语义还包括传输类型、编码类型、单播支持、多播支持、会话支持、交易支持、安全支持、保护支持、可靠消息传递保证和排队支持中的一个或多个。
13.如权利要求11所述的方法,其特征在于,基于用于听众的消息过滤器,从听众工厂把该消息传递给听众。
14.如权利要求11所述的方法,其特征在于,基于消息交换模式,该听众创建包含实现标准接口的一个或多个可插入模块信道组件的另一个运行库通信信道。
15.在分布式系统中,一种通过递归地使消息穿过服务通信信道的可插入模块信道组件来处理消息以在服务内的端点处消耗的方法,其中每个可插入模块信道组件实现多个标准接口中其中一个,这些标准接口允许处理要以多态方式表示的组件或模块之间的通信语义的细节,该方法包含以下动作:
在服务通信信道中的第一信道组件处接收至少包括消息交换模式的通信语义,通过基于该消息交换模式从多个标准接口中选择的标准接口接收通信语义;
通过该标准接口接收已经根据通信语义处理且为消息交换模式的一部分的消息;以及
对该消息进行至少一部分通信语义去复用,其中该标准接口从与服务通信信道交互的其他组件或模块中抽象用于对消息进行至少一部分通信语义去复用的实现细节。
16.如权利要求15所述的方法,其特征在于,该通信语义还包括一个或多个传输类型、编码类型、单播支持、多播支持、会话支持、交易支持、安全支持、保护支持、可靠消息传递保证和排队支持中的一个或多个。
17.如权利要求15所述的方法,还包含以下动作:
在服务通信信道中的第二信道组件接收通信语义的剩余部分,通过标准接口接收该剩余通信语义;
通过该标准接口接收作为消息交换模式的一部分的消息;
对消息进行剩余通信语义的至少一部分的去复用,其中该标准接口从与服务通信信道交互的其他组件或模块中抽象用于对消息进行剩余通信语义的至少一部分的去复用的实现细节。
18.如权利要求17所述的方法,其特征在于,第一信道组件和第二信道组件之间的处理顺序是可互换的。
19.如权利要求15所述的方法,其特征在于,从输入、输出、请求、应答或双工中选择该消息交换模式。
20.如权利要求15所述的方法,其特征在于,对通信语义去复用的动作在第一信道组件处完成,以便该消息不被传递给与服务通信信道交互的其他模块或组件。
CN2006100025061A 2005-02-04 2006-01-04 面向服务的系统中端点之间的消息传递的方法 Expired - Fee Related CN1816048B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/051,238 US7882236B2 (en) 2005-02-04 2005-02-04 Communication channel model
US11/051,238 2005-02-04

Publications (2)

Publication Number Publication Date
CN1816048A true CN1816048A (zh) 2006-08-09
CN1816048B CN1816048B (zh) 2012-05-09

Family

ID=36616996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100025061A Expired - Fee Related CN1816048B (zh) 2005-02-04 2006-01-04 面向服务的系统中端点之间的消息传递的方法

Country Status (5)

Country Link
US (1) US7882236B2 (zh)
EP (1) EP1691285A3 (zh)
JP (1) JP4896532B2 (zh)
KR (1) KR101183323B1 (zh)
CN (1) CN1816048B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304275B (zh) * 2008-05-13 2012-02-01 南京邮电大学 应用于移动通信网络的无线信道建模与仿真方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882236B2 (en) 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model
KR101190597B1 (ko) * 2008-12-19 2012-10-15 한국전자통신연구원 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법
US20100185714A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Distributed communications between database instances
US8307368B2 (en) * 2009-05-26 2012-11-06 Microsoft Corporation Locality-based scheduling in continuation-based runtimes
CN102469035B (zh) * 2010-11-05 2016-01-20 腾讯科技(深圳)有限公司 跨进程通信的方法和装置
TWI426791B (zh) * 2010-06-09 2014-02-11 Univ Ishou Interrupt capacity calculation device and method
US9292342B2 (en) * 2012-12-26 2016-03-22 Microsoft Technology Licensing, Llc Schedule based execution with extensible continuation based actions

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6442620B1 (en) * 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
GB9826158D0 (en) * 1998-11-27 1999-01-20 British Telecomm Anounced session control
US6826763B1 (en) 1998-12-11 2004-11-30 Microsoft Corporation Accelerating a distributed component architecture over a network using a direct marshaling
WO2000045256A1 (en) * 1999-01-29 2000-08-03 Iona Technologies, Inc. Method and system for dynamic configuration of interceptors in a client-server environment
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
EP1164482B1 (en) 2000-06-16 2008-10-22 Microsoft Corporation System and method for interactive communication between objects in a distributed computing environment
US6990513B2 (en) * 2000-06-22 2006-01-24 Microsoft Corporation Distributed computing services platform
US6996800B2 (en) * 2000-12-04 2006-02-07 International Business Machines Corporation MVC (model-view-controller) based multi-modal authoring tool and development environment
US7165107B2 (en) * 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7120896B2 (en) * 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US7308496B2 (en) * 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
US7222187B2 (en) * 2001-07-31 2007-05-22 Sun Microsystems, Inc. Distributed trust mechanism for decentralized networks
US7203753B2 (en) * 2001-07-31 2007-04-10 Sun Microsystems, Inc. Propagating and updating trust relationships in distributed peer-to-peer networks
WO2003014927A2 (en) 2001-08-08 2003-02-20 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US7159224B2 (en) * 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7631318B2 (en) 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US7200676B2 (en) 2003-03-26 2007-04-03 Microsoft Corporation Transmitting and receiving messages through a customizable communication channel and programming model
US7882236B2 (en) 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304275B (zh) * 2008-05-13 2012-02-01 南京邮电大学 应用于移动通信网络的无线信道建模与仿真方法

Also Published As

Publication number Publication date
CN1816048B (zh) 2012-05-09
EP1691285A2 (en) 2006-08-16
EP1691285A3 (en) 2008-04-02
JP2006216033A (ja) 2006-08-17
KR20060089624A (ko) 2006-08-09
KR101183323B1 (ko) 2012-09-14
JP4896532B2 (ja) 2012-03-14
US7882236B2 (en) 2011-02-01
US20060178152A1 (en) 2006-08-10

Similar Documents

Publication Publication Date Title
CN1816048A (zh) 通信信道模型
CN102904733B (zh) 分布式、可缩放、可插入的会议体系结构
CN1816052A (zh) 用于构建和使用通信绑定对象的系统和方法
CN1787497B (zh) 在web服务环境可靠消息通信中验证和维持连接活跃性
CN101159714B (zh) 一种即时通讯方法和装置
US20090003342A1 (en) Reliable multicast with automatic session startup and client backfil support
CN1832475A (zh) 通过请求-响应传输的可靠的请求-响应消息通信
CN103929343A (zh) 一对多数据投影系统和方法
WO2003090435A1 (en) Method and software for enabling n-way collaborative work over a network of computers
CN1533117A (zh) 通过可定制通信信道和程序设计模型对消息的发送和接收
WO2011139322A2 (en) Network-attached display device as an attendee in an online collaborative computing session
US7881336B2 (en) HTB gateway for healthcare transaction base
CN106209966A (zh) 管控端更新设备状态的方法、服务端的处理方法和装置
CN102884508A (zh) 分层地分解消息
US20090150502A1 (en) System and method for hypertext transfer protocol publish and subscribe server
Ådahl Shared resource for collaborative editing over a wireless network
CN101939726A (zh) 用于媒体控制的媒体混合接线协议
US20060150245A1 (en) System and method of automatically transforming instant message transmission modes on internet
CN107231275B (zh) 用于用户设备与家居设备连接配置的方法
CN102393887A (zh) 基于lsm基制的应用集中管理系统及方法
CN101309154A (zh) 报文的发送方法、发送装置和传输系统
RU2377640C2 (ru) Архитектура для расширяемой системы совместной работы в реальном времени
Kobus et al. RESTGroups for resilient Web services
Sadab Multiple Client and Server ChatApplication using Multicast in Java WindowBuilder
Sturzebecher A portable and flexible Framework for CSCW Systems

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: 20150525

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

Effective date of registration: 20150525

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20210104

CF01 Termination of patent right due to non-payment of annual fee