专利名称:角色独立的上下文交换的制作方法
角色独立的上下文交换
背景技术:
网络,特别是因特网的出现导致在线服务变得常见。这种在线服务通常是通过在网络上传递消息的某些形式被访问。在两个参与方之间的相关的消息的持续交换通常要求这些参与方维护有关会话的历史信息(会话状态),并且要求这些参与方具有一种标识可能相关的消息的机制。
发明内容
下面提供本发明的简要概述以便向读者提供基本的理解。本概述不是本发明的详尽概观,并且既不标识本发明的关键/重要元素,也不描绘本发明的范围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描述的序言。本示例提供了用于多个参与方之间的会话的技术,所述会话包括可被持久保存的上下文信息,以用于在所述参与方或与其通信的通信介质间歇工作时来维持所述会话。在这样的会话中,任意参与方可以将其对上下文的观点嵌入到消息中,并且,任意参与方可以在不考虑角色(role)和底层网络、传输或应用程序消息交换模式的情况下发送下一消息。 这些技术提供了持久的服务。许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
结合附图考虑以下详细描述,将更好地理解本说明书,在附图中图1是示出通过各种通信介质耦合通信的示例参与方的框图。图2是示出示例参与方和示例会话的示例消息序列的框图。图3是示出其中可以实现此处所描述的技术的示例计算环境的框图。附图中使用相同的附图标记来指代相同的部分。
具体实施例方式下面结合附图所提供的详细描述旨在作为对本发明各示例的描述,而非表示用于构造或利用本发明各示例的唯一形式。本说明书阐明各示例的功能和/或用于构造和操作各示例的步骤序列的至少某一些。然而,相同或等效的功能与序列可由不同的示例来实现。虽然在本文中将本发明的示例描述并示出为在计算和联网环境中实现,但是所描述的技术只是作为示例而非限制来提供。本领域的技术人员将会认识到,本发明的示例适于在各种不同类型的计算和联网环境和系统中应用。图1是示出通过各种通信介质耦合通信的示例参与方110和120的框图。示例参与方110被示为通过因特网130、示例消息队列140和示例网络150与示例参与方120耦合,所述网络150可以是局域网(“LAN”)、广域网(“WAN”)或任何其他类型的网络或网络的组合。参与方110和/或120可以通过任意其他的介质、技术、手段等等(在此共同地或单独地被称为“通信介质”并包括结合图3所描述的内容)被另外地或替换地通信耦合。 参与方110和/或120可以包括多个网络接口卡等等,每个网络接口卡耦合到不同的网络寸寸。在该示例中,通信介质130、140和150是“通信上不同的”或简单地是“不同的”。 就是说,参与方110和120中的每个通过一个耦合(未示出,例如网络接口卡(“NIC”等)) 耦合到通信介质150,并通过另一个不同的耦合(未示出)耦合到通信介质140,并通过又一个不同的耦合(未示出)耦合到通信介质130。这样,参与方110不能在其到通信介质 150的耦合上通过因特网(通信介质130)与参与方120进行通信,因为各种的通信介质是不同的。这些通信介质可以共享硬件、网络、链接等,但它们还是通信上不同的或是不同的。 例如,在因特网上建立的虚拟个人网络(“VPN”)典型地与其工作的因特网是通信上不同的。在另一个示例中,到特定参与方的LAN连接可以与到同一参与方的WAN连接或另一不同的LAN在通信上不同。在另一个示例中,可以在因特网上或LAN上建立消息队列,这样, 该消息队列不同于所述因特网或LAN。许多其他的通信上不同的通信介质的示例对于本领域的技术人员来说是公知的,并且可以被本发明所利用。如果保证在会话中的两个参与方,例如参与方110和120,连续工作,则消息交换可以在将信息驻留在这两个参与方的非持久保存的存储器中的情况下进行。例如,这可以是在一系列消息已经在LAN之上的同一传输控制协议(“TCP”)连接上交换的情况。然而, 对于应用来说,需要参与方之一或两者都间歇性工作和/或与它们耦合的通信介质间歇性工作的情况是常见的。而且,允许用于在参与方之间交换消息的特定通信介质随时间改变, 甚至随一消息到下一消息而改变是有价值的。在此使用的术语“参与方”或“多个参与方”通常指代某些形式的计算系统或设备或能够与另一参与方通信的类似物。参与方通常在此被命名为“系统”。这种计算系统可以由结合图3所描述的计算环境来提供。参与方可以被认为是客户机和/或服务器和/或服务。参与方可以是“持久服务”,持久保存会话状态的服务,使得所述服务可以在不丢失会话状态的情况下关闭并重启。参与方可以由通过网络、总线或其他通信手段等耦合的计算系统集合来构成。在此使用的术语“会话消息”和“消息”通常指代可以包括几个部分(典型地包括主体和一个或多个标题)的自包含的数据单元。这种消息可以在一个或多个数据分组中传输,所述一个或多个数据分组可使用任意适合的传输协议被传输给另一参与方。在此使用的术语“会话”通常指代在参与方之间的某些消息交换,并且每个发送的消息可以涉及通过传输协议的在参与方之间的简单的或复杂的分组交换,传输协议可诸如例如超文本传输协议(“HTTP”)或以前称为“简单对象访问协议”的SOAP。会话可以是短持续时间的或在例如数月、数年或更长的一个很长的持续时间中进行。会话可以由仅几个消息(伴随单个回应的单个请求)或许多消息构成。会话可以利用多个通信介质,并且这些介质可以在会话生存期上变化。会话可以在即使参与方、通信介质、传输和或涉及的类似物意外地或有意地停止工作一段时间并随后再次工作的情况下保持。可以在不考虑分配给参与方的任何一个或多个角色的情况下由任一参与方开始会话。任一参与方可以同时涉及一个或多个会话中。在此使用的术语“通信介质”通常指代物理连接性和/或协议连接性和这两者的任意组合等等。物理连接性的通信介质的示例包括特定网络、串行总线、红外线链接等等。 协议连接性的通信介质的示例包括包括在某些物理连接性上的各种传输协议,例如消息队列、TCP、简单邮件传输协议(“SMTP”)、S0AP(以前称为“简单对象访问协议”)或HTTP。协议连接性可提供直接连接(例如TCP)或去耦合连接(例如消息队列)。在一些情况中,不同的传输协议可以使用同一的物理连接性。例如,消息队列和TCP连接都能在同一网络上工作。而且,在另一示例中,消息队列可以使用TCP来实现。每个会话消息典型地具有与其相关联的(包括的和/或参考的)会话上下文,所述会话上下文表示会话的状态、发送会话的参与方的地址以及接收会话的参与方的地址。 消息的格式可以随意构建。在一个示例中,使用可扩展标记语言(“XML”)以及所述地址和上下文分段来格式化消息。在另一个示例中,消息中的会话的上下文是一上下文属性列表, 每个上下文属性具有给定的名字和对应的值,所述值是文本串。在另一个示例中,将上下文和/或地址加入到消息标题。在又一个示例中,使用会话的两个参与方之间的预先安排的协定从消息主体的内容中推断出上下文和/或地址。图2是示出示例参与方110和120与示例会话的示例消息序列200的框图。参与方110和120类似于图中的那些参与方。示出的示例参与方120包括示例发送器123、示例接收器124以及示例存储器125。发送器123典型地包括用于生成并发送消息的消息处理管道。接收器1 典型地包括用于接收并处理消息的消息处理管道。存储器125典型地包括用于存储消息上下文等的非易失存储机制。参与方110和在会话中涉及的其他参与方典型地包括类似的、可兼容的发送器、接收器和存储器。图2示出经由地址M 111处的接口和通信介质250与经由地址A 121处的接口的示例参与方120耦合的示例参与方110。示例参与方110进一步被示出经由地址N 112处的另一接口和通信介质260与经由地址B 122处的另一接口的示例参与方120耦合。通信介质250和260彼此在通信上不同。就是说,例如,参与方110不能从地址M 111与地址B 122处的参与方120通信,因为在地址M 111与地址B 122之间并不存在提供通信路径的通信介质。换句话说,参与方110不能在通信介质250上与地址B 122处的参与方120通信。 因此,可以将地址认为是“非可达的”或“不可达的”。此处所使用的这个术语典型地指代不能将消息明确定向到的地址。在一些情况中,如上针对通信上不同的两个通信介质等所述的,由于网络拓扑等因素,地址对于一个特定发送地址是不可达的。不可达地址的其他示例包括典型地指示没有提供地址的 < 无 > 地址等以及典型地指示可以接收消息但不能为其计算或解释可用地址的参与方的 < 匿名 > 地址。匿名地址的示例包括HTTP和TCP连接的反向连接。图2还在步骤210、220和230中示出示例通信序列。在该示例中,步骤210典型地指示在通信介质250上从参与方120发送到参与方110的消息-会话消息A。在该示例中,会话消息指示下述信息
权利要求
1.一种系统,包括耦合到多个通信上不同的通信介质的发送器,其中,所述发送器在操作上通过所述多个通信上不同的通信介质中的第一通信介质生成并发送第一消息给另一个系统,所述第一消息包括应用回应地址,所述第一消息与会话相关联,并且其中,所述第一消息包括会话状态,所述会话状态包括第一上下文信息和第一会话回应地址,其中所述第一会话回应地址不同于所述应用回应地址;以及存储器,其中存储了所述会话状态的至少一部分。
2.如权利要求1所述的系统,其特征在于,所存储的会话状态表示了足以在所述系统的关闭和重启的会话状态期间维护所述会话。
3.如权利要求1所述的系统,其特征在于,进一步包括耦合到所述多个通信上不同的通信介质的接收器,其中,所述接收器在操作上通过所述多个通信上不同的通信介质中的第二通信介质从另一参与方接收并处理第二消息,所述第二消息包括第二上下文信息,并且其中所述第二上下文信息的至少一部分将所述第二消息与所述会话相关联。
4.如权利要求3所述的系统,其特征在于,所述接收器在操作上通过所述第二通信介质从所述另一参与方处接收并处理第三消息,其中所述第三消息是独立于所述会话的应用回应。
5.如权利要求3所述的系统,其特征在于,所述第二通信介质不同于所述第一通信介质。
6.如权利要求1所述的系统,其特征在于,所述第二上下文信息包括所述会话状态的至少一部分。
7.如权利要求1所述的系统,其特征在于,所述会话回应地址是所述发送器的地址。
8.如权利要求1所述的系统,其特征在于,所述会话回应地址是另一参与方的地址。
9.如权利要求1所述的系统,其特征在于,不能经由所述第一通信介质到达所述会话回应地址。
10.如权利要求1所述的系统,其特征在于,所述会话回应地址是缺少了发送会话消息所需的物理地址信息中的某个部分的逻辑地址,其中,缺少的物理地址信息可从外部服务获得。
11.如权利要求1所述的系统,其特征在于,所述应用回应地址不是可到达的地址。
12.一种用于生成并发送会话消息的方法,所述方法包括 确定会话的上下文;将所述上下文加入到所述消息; 将与所述上下文相关联的应用操作加入到所述消息;将会话回应地址加入到所述消息中,其中会话状态包括所述会话的上下文以及会话回应地址;以及通过第一通信介质将所述消息发送给另一参与方,其中,不能经由所述第一介质到达所述会话回应地址。
13.如权利要求12所述的方法,其特征在于,进一步包括存储所述会话状态。
14.如权利要求13所述的方法,其特征在于,所存储的会话状态足以维护所述会话在系统的关闭和重启期间维护所述会话。
15.如权利要求12所述的方法,其特征在于,所述消息包括应用回应地址字段,其中, 所述应用回应地址不同于所述会话回应地址。
16.如权利要求12所述的方法,其特征在于,使用可扩展标记语言(“XML”)来格式化所述消息。
17.如权利要求12所述的方法,其特征在于,所述会话回应地址是缺少了发送会话消息所需的物理地址信息中的某个部分的逻辑地址,其中,缺少的物理地址信息可从外部服务获得。
18.如权利要求15所述的方法,其特征在于,所述应用回应地址不是可到达的地址。
19.一种包括计算机可执行指令的计算机可读媒体,由处理器执行所述计算机可执行指令以执行一种用于生成并发送会话消息的方法,所述方法包括确定会话上下文;将所述上下文加入到所述消息;将与所述上下文相关联的应用操作加入到所述消息;将会话回应地址加入到所述消息中,其中会话状态包括所述会话的上下文以及会话回应地址;将应用回应地址加入到所述消息中,其中,所述应用回应地址不同于所述会话回应地址;以及通过第一通信介质将所述消息发送给另一参与方,其中,不能经由所述第一介质到达所述会话回应地址。
20.如权利要求19所述的计算机可读媒体,其特征在于,所述会话回应地址是缺少了发送会话消息所需的物理地址信息中的某个部分的逻辑地址,其中,缺少的物理地址信息可从外部服务获得。
全文摘要
用于多个参与方之间的会话的技术,所述会话包括可被持久保存的上下文信息,以用于在所述参与方或与其通信的通信介质间歇工作时来维持所述会话。在这样的会话中,任意参与方可以将其对上下文的观点嵌入到消息中,并且,任意参与方可以在不考虑角色和底层网络、传输或应用程序消息交换模式的情况下发送下一消息。这些技术提供了持久的服务。
文档编号G06Q50/00GK102165484SQ200980139423
公开日2011年8月24日 申请日期2009年9月15日 优先权日2008年9月30日
发明者E·S·V·平特, N·A·艾伦, S·J·米利特, T·R·维什瓦纳坦 申请人:微软公司