CN101405993A - 使用计算上下文的网络接口路由 - Google Patents

使用计算上下文的网络接口路由 Download PDF

Info

Publication number
CN101405993A
CN101405993A CNA2007800092849A CN200780009284A CN101405993A CN 101405993 A CN101405993 A CN 101405993A CN A2007800092849 A CNA2007800092849 A CN A2007800092849A CN 200780009284 A CN200780009284 A CN 200780009284A CN 101405993 A CN101405993 A CN 101405993A
Authority
CN
China
Prior art keywords
computational context
thread
network interface
network
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
CNA2007800092849A
Other languages
English (en)
Other versions
CN101405993B (zh
Inventor
F·范梅根
I·W·塞尔莫
W·马努瑟克
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 CN101405993A publication Critical patent/CN101405993A/zh
Application granted granted Critical
Publication of CN101405993B publication Critical patent/CN101405993B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5691Access to open networks; Ingress point selection, e.g. ISP selection
    • H04L12/5692Selection among different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

在存在多个活动网络连接(316、318、320、322)的情况下使用计算机操作环境的计算上下文的知识,例如对进程线程的知晓(302a-d、304a-d),来路由IP话务。可以将一种额外的的协议(310)添加到操作系统的网络层(306)以将特定计算上下文映射到特定网络接口(316、318、320、322)。具有与请求通过通信网络进行数据传输的映射的计算上下文(410)相关联的标识参数的任何进程都绑定至先前与计算上下文(424)相关联的网络接口而不是另外可能是默认的替换网络接口。此外,可以使得父进程线程(502)所创建的进程线程(516)继承父线程(502)的计算上下文以将话务分配给相同的网络接口。该路由框架可具有关于多穴主机设备,例如移动计算设备(600)的特定应用程序。

Description

使用计算上下文的网络接口路由
发明背景
多穴(multihomed)主机设备,即,诸如移动计算设备等具有不止一个网络连接的设备,不具备隐式地和动态地选择用于特定远程数据交换的网络链路的能力或当计算环境的上下文满足特定条件时选择网络链路能力。一般地,经由在偏好选择中由用户设置的默认连接来路由所有话务,或者由在其他连接不可用时可用的特定网络连接来发送所有话务。不幸的是,默认网络连接可能并非是对可用网络资源的最佳利用或可能不是在特定时间用户最感兴趣的。例如,在可用网络和对较低带宽连接的默认选择之间可能存在的差别很大的数据传输速率可以不恰当地增加下载时间或占用处理器容量。此外,不同的连接选项可具有不同的使用费用并且默认的网络连接在当时可能并不是对用户最有价值的。
概述
在存在多个活动网络连接的情况下使用计算机操作环境的计算上下文的知识,例如对进程线程的知晓,来路由IP话务。可以将另外的应用程序协议接口(API)添加到操作系统的网络层以将特定计算上下文映射到特定网络接口。具有与通过通信网络请求数据传输的映射的计算上下文相关联的标识参数的任何进程都绑定至先前与该计算上下文相关联的网络接口而不是另外可能是默认的替换网络接口。此外,可以使得父进程线程所创建的进程线程继承父线程的计算上下文以将话务分配给相同的网络接口。该路由框架可具有关于多穴主机设备,例如移动计算设备的特定应用程序。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。所要求保护主题的其他特征、细节、功能、以及优点将从如附图中进一步示出的以及在所附权利要求中所定义的以下更详细描写的各实施例和实现的详细描述中变得显而易见。
附图简述
图1是基于此处所描述的计算上下文框架来使用路由功能的计算机网络的示意图。
图2是此处所描述的网络接口路由框架的一个实现的示意图。
图3是此处所描述的网络接口路由框架的另一个实现的示意图。
图4是用于基于计算上下文将网络接口分配给应用程序线程的过程的示意图。
图5是用于将网络接口从一个应用程序线程分配给另一个应用程序线程的过程的示意图。
图6是可在计算上下文路由系统的实现中使用的通用移动计算设备的示意图。
图7是可在计算上下文路由系统的实现中使用的通用计算机系统的示意图。
发明详述
在现代计算设备中,并且尤其对于移动计算设备,计算设备同时利用多个网络接口是常见的。例如,“智能电话”可以支持用于蓝牙(一种短程无线连接标准)、无线局域网(WLAN或Wi-Fi)、以及通用分组无线电业务(GPRS)/通用移动电信系统(UMTS)(用于通过无线电频谱的数据发送和接收的分组交换协议)的通信接口。虽然GPRS几乎始终是可用的,但是Wi-Fi连接通常只在移动设备在例如家庭无线网络、工作场所无线网络、或者公共或半公共无线网络(例如,在咖啡店或商务顾客酒店可用)的Wi-Fi网络的范围之内时可用。这些网络接口可具有成本、安全性、以及带宽方面的非常不同的特性。
因为通过Wi-Fi连接传输数据的成本相比于通过GPRS连接传输的每个数据单元(例如,每兆字节(MB))的成本一般是可忽略的,所以期望只要可能的时候就使用Wi-Fi接口。对于一般相比于GPRS连接在Wi-Fi网络上要大得多的可用带宽,该相同的偏好可能也是如此。
然而,存在为何对应用程序而言在不止一个网络可用的情况下优选地选择更慢或更昂贵的网络连接是较佳的多个理由。例如,某些网络可以提供对只在该网络上可用的特定服务器和服务的访问。取决于在计算设备上运行的用户或应用程序的特定需求,不同的网络连接可以是到达它们的最佳连接。在这些情况下,基于当前计算上下文选择用于特定通讯任务的网络接口链路可以是有价值的。
当此处使用数据“网络链路”或“链路”时,它一般指的是通过特定硬件通信设备或“网络接口”直接连接的对等体之间的连接。例如,连接到相同的以太网段的所有计算机(例如,交换器或集线器)在相同的网络链路上。在另一个示例中,用Wi-Fi卡连接到相同无线接入点的所有设备使用相同的网络链路。在又一个示例中,当用户通过该用户的计算机上的调制解调器使用拨号连接来到达因特网服务供应商(ISP)时,确切地存在连接到同一网络链路(即,在该用户计算机上的调制解调器)的两个节点(该用户的计算机以及ISP的调制解调器)。节点使用路由协议来判定使用哪条网络链路来发送针对下一个目的地节点的分组(即,节点判定将使用哪条网络链路来“更靠近”目的地节点)。
当此处使用术语“网络连接”时,它一般用于描述在不必连接到同一网络链路的两个节点之间的逻辑连接。这对于因特网是常见情况。网络连接意味着使用标准网际协议(IP)来在节点之间交换数据。
当此处使用术语“网络套接字”或“套接字”时,它一般用于描述网络连接的端点。为了设置网络连接,两个节点都创建网络套接字,将套接字相关联(即,“连接”)以建立网络连接,并使用IP协议来通过该连接交换数据。因此,在该上下文中,在网络链路只提供对直接与特定硬件通信设备(即,网络接口)相连接的节点的访问,而网络连接和相关联的网络套接字允许对通过遍历经由多个网络链路相连接的一组节点可到达的节点的访问的意义上,网络链路可被认为是比网络套接字或网络连接“低级”。
“计算上下文”意味着可以使用由特定应用程序或计算设备的用户具体标识的偏好来动态地做出对网络链路接口的选择而不是仅仅选择活动的默认网络链路或利用现存的路由表。在应用程序编程的说法中,网络路由选择因此将基于程序执行的特定“线程”从而做出。类似于多条线交织在一起以形成一片纤维的方式,线程是程序将其自身分成两个或多个同时运行的任务的方式。可以在许多计算机系统上并行执行多个线程。该多线程化一般通过时间片(其中单个处理器在不同的线程之间切换)或通过多处理(其中线程在各独立的处理器上执行)来发生。此外,处理器可以同时处理来自同时执行的多个应用程序的线程。
图1提供了可如何开发应用程序以实现基于计算上下文(即,执行的特定线程)的网络接口的选择的示例。在该示例中,开发“新闻阅读器”应用程序104以供在与分布式网络计算系统100(例如,因特网)相连接的移动计算设备102上使用。移动设备102可配备若干不同的通信网络接口。例如,移动设备102可具有用于与诸如无线头戴式耳机等外围设备进行通信或用于与台式计算机进行同步的短程蓝牙网络接口112。该移动设备102也可具有用于当在无线接入点的范围中时进行高速数据传输的Wi-Fi网络接口114。该移动设备102还可具有用于在可能与该移动设备102的电话组件的语音通信服务的覆盖范围同延的大得多的地理区域上的数据通信的GPRS网络接口116。
新闻阅读器应用程序104可被设计为每天早晨更新可用新闻项列表并且当Wi-Fi连接可用时或如果用户显式地指示花费额外的钱以通过GPRS来下载文章的意愿时下载完整的新闻文章。从其下载新闻订阅源和文章的网络服务器118上的库120可由该移动设备的Wi-Fi网络接口或GPRS网络接口来访问。然而,控制库120的软件是由第三方来编写的,并且新闻阅读器应用程序104的开发者不可访问控制库120或网络服务器118以指示新闻订阅源或文章应通过哪个网络来传送的源代码。
为了实现基于上下文的正确的网络选择,新闻阅读器应用程序104的开发者可在新闻阅读器应用程序104中编写独立可执行的线程以实现本程序的期望目标。例如,可以编写第一程序性线程106以周期性地下载新闻订阅源。在该示例中,用户可以设置新闻阅读器应用程序104中指示新闻订阅源下载应在每天早晨执行的时间组件。此外,新闻阅读器应用程序104的默认网络可被设置为Wi-Fi以利用更低的成本以及更快的下载速度。新闻阅读器应用程序104可被设计为监视可用的联网接口并且只在该设备在用户设置的时间窗内通过Wi-Fi来连接时触发与第三方库130的实际连接。
在第二示例性程序性线程108中,新闻阅读器应用程序104的开发者可以将默认设为一旦可以从库120获得新闻文章并且仅当在Wi-Fi连接114的范围中时作为后台操作来下载实际的新闻文章。同样,在第三示例性程序性线程110中,新闻应用程序104可被配置为只下载用户所选的新闻文章。
对于许多移动设备操作系统(例如,WINDOWS CE),存在对IP联网层的扩展,该扩展允许传输层驱动程序显式地将套接字(即,网络连接的逻辑抽象)绑定或分配到物理网络接口(例如,Wi-Fi、GPRS/UMTS、LAN、蓝牙),因此显式地通过该绑定接口发送由该套接字生成的所有话务。该操作系统功能可被应用程序的开发者用于具有多个网络接口选项的移动设备或其他计算设备。然而,这些套接字绑定功能可能不是例如图1的新闻文章库120等可用于为移动设备上的应用程序的通信需求服务的第三方应用程序所期望的。
即使具有多个活动网络接口以及将套接字绑定到网络接口的能力,没有某些另外的功能,也不能够实现上述新闻阅读器应用程序104。这是因为开发者不具有对第三方库的控制(用于传递选择特定接口的参数),也不能够将联网层配置为自动地将话务从主存库120的网络服务器118路由到特定网络接口。此外,网络协议将使用最初由设备或特定应用程序为通信话务所选的默认网络来路由由特定应用程序生成的或用于该特定应用程序的所有分组话务。
新闻阅读器应用程序104的开发者的目标是使由第一线程106以及第二线程108生成的所有网络话务都通过Wi-Fi网络路由。另外,开发者想让新闻阅读器应用程序104决定用于根据第三线程110显式地选择的新闻文章的路由。新闻阅读器应用程序应能够动态地选择话务应通过Wi-Fi连接还是GPRS连接。
为了实现这些目标,可以引入映射表来将计算上下文(例如,各线程或其他参数)映射到操作系统的联网层中的接口。该映射表包含对应于用于应通过其路由外出话务的每个受监视的计算上下文(例如,程序线程)的物理网络接口的标识符。联网层中的路由代码甚至在到接口的连接“丢失”(例如,因为所配置的接口不可用所以丢弃分组)的情况下也遵循所选的物理网络接口。
作为默认,先前的配置(例如,父线程的配置)是固有的或是由运行的计算上下文所创建的任何新的计算上下文假设的,而不是事先需要绑定到对应于用于网络连通性的每个线程的特定套接字。因此,新程序性线程默认地继承其父线程的偏好。以此方式,对于每个进程情形,只有第一个(主)线程必须被分配给物理网络接口,而随后创建的线程自动被分配给相同的接口,除非以其他方式显式地配置。
有了该框架,开发者因此能够实现新闻阅读器应用程序以按照上下文来选择网络接口。当实例化该应用程序时,第一线程106可被显式地绑定到Wi-Fi接口。即使无线链路还未被分配IP地址,这在移动操作系统的联网层中也是可能的。该显式绑定保证新闻阅读器应用程序104无论在什么情况下都不会通过选择更昂贵的网络连接或默认当前正由该移动设备用于其他话务的连接而为用户产生不需要的成本。
一旦在移动设备102与分发第三方库120的网络服务器118之间启动Wi-Fi连接,应用程序就可产生第一线程106作为后台线程(即,新的计算上下文)以周期性地检索可用新闻项的列表。在该示例中,该新线程继承主线程的联网接口准则。因此,应用程序不需要任何额外的工作来确保正确地路由IP分组。注意,不需要重写现存的使用网络的组件以从该解决方案中获益,因为调用另一个组件的父线程的上下文网络特性可以在实例化时被简单地附着到子线程组件。
一旦新的新闻项列表可用,第一线程106就产生第二线程108以处理待决新闻消息的排队列表。再一次,对于新闻阅读器应用程序104没有额外的工作,因为来自第一线程106的设置被传播至第二线程108的新计算上下文。
当用户在应用程序的用户界面中点击第二线程108还未下载的新闻项时,新闻阅读器应用程序104询问用户是否愿意为通过GPRS的即时传输支付额外的费用。如果用户接受这些费用,则新闻阅读器应用程序104创建第三线程110,但然后修改对应于该第三线程110的联网接口绑定以将其锁定到GPRS连接。
以上对于图1的示例性场景所述的网络接口的上下文选择和绑定的这一概念的实现可被分成两个问题。第一个问题涉及如何将特定联网连接始发的所有话务路由到指定的联网接口。第二个问题涉及如何将从计算上下文(例如,特定程序线程)中创建的联网连接绑定到特定联网接口。
对于第一个问题的一个可能的解决方案使用如在图2所描绘的实现200中所表示的一个或多个分层协议驱动程序210、212。可由应用程序访问的应用程序协议接口(API)204与操作系统的联网功能接口。具体地,可以调用被大多数因特网和网络应用程序用于处理网络连接的套接字API 204,例如,Windows套接字API WinSock。在取决于被假定为支持套接字到物理接口的显式绑定的底层基础协议216时,分层协议驱动程序210、212将各线程映射到物理网络接口。
分层协议驱动程序210、212具有两个责任。由第一分层协议210表示的第一责任是向应用程序展示接口以操控映射表从计算上下文(例如,特定程序线程)转换到联网接口。使用该层,应用程序能够修改其绑定。
由第二分层协议212表示的第二责任是通过连接套接字的传输层服务供应商接口(SPI)206来截取调用。第二分层协议212监视对特定网络接口的显式绑定请求以使得分层协议驱动程序210、212不干扰故意绑定的套接字。当标识未绑定的套接字时,第二分层协议驱动程序212显式地将该套接字绑定到由映射表基于计算上下文(如果设置了这些上下文属性)指示的网络接口,并且修改该套接字的属性以经由所选物理网络接口来路由始发分组。
因此,对于没有显式网络绑定的套接字,如在套接字API与第一分层协议210之间的通信箭头208所指示的,分层协议驱动程序200应用与当前计算上下文(例如,线程)相关联的绑定。然而,如在套接字API 204与基础协议216之间的通信箭头214所指示的,分层协议驱动程序200并不干扰对网络连接的现存的显式套接字绑定。
回想将从计算上下文中创建的联网套接字绑定到特定联网接口的第二个问题。如图3所描绘的,用于路由话务的另一个实现通过直接将应用专用路由属性添加到现存的路由表308来修改路由子系统300来解决该问题。路由子系统300可具有允许操控联网协议层306以基于属于特定进程的任何计算上下文(例如,线程)来路由的附加上下文映射接口310。
当执行“connect()”(连接)操作或由程序员使用“bind()”(绑定)操作来显式地连接时,套接字一般自动地或隐式地被连接到联网接口。该任务是使隐式绑定可通过在映射或路由表308中将计算上下文与联网接口相关联来配置,并且使联网层306的隐式绑定代码遵循该路由表308。通常将联网套接字连接到联网接口316、318、320、322的各操作由上下文映射接口310截取,从而使应用程序开发者能够创建从计算上下文(例如,线程标识)到特定联网接口316、318、320、322的映射制度。
图3部分地示出了一般如何处理由来自单个进程的不同线程生成的联网话务。两个示例性应用程序302、304被描绘为各自并行地执行四个线程302a-d、304a-d。在每个线程的生存期期间,生成需要被传送至远程站点的话务。线程302b、302d、304a、304b、304c不包含上下文信息,而线程302a、302c、304d包括上下文信息。此外,线程302a的上下文指示由该进程产生的信息应通过GPRS接口316而非另一个接口来发送。这在图3中由在线程302a与联网层306之间的具有单个点的虚线来指示。线程302a的上下文指示由该进程产生的信息应通过GPRS接口316而非另一个接口来发送。这在图3中由在线程302c、304d与联网层306之间的具有两个点的虚线来指示。
如果没有上下文映射,则所有通信量一般将使用联网层306的现存的接口来通过联网层306(例如,创建套接字、建立到远程站点的连接、以及最终通过该连接来发送数据)。该话务由从线程302b、302d、304a、304b、304c到联网层306的实线箭头以及从联网层306到网络接口316、318、320、322中的每一个的实线箭头来表示。由联网层306所选择的特定接口仅仅是当时的默认接口,例如,在设备范围中或连接到该设备的或被用户选为默认的无论哪个接口。在联网层306中发生了什么对于应用程序302、304是透明的,但最终将每一信息片段都传递至物理网络接口316、318、320、322以供发送。
普通的接口配置导致路由表308具有对应于每个活动联网接口316、318、320、322的默认路由。注意,对应于每个网络接口316、318、320、322的完整的IP参数集在初始化了网络接口之后可用。该信息是IP地址、网络掩码、以及网络接口的默认网关的形式,并且由本地机器的管理员来硬编码或者在配置期间从由自动分配配置的动态主机配置协议(DHCP)服务器返回的数据中设置。
然而,在路由表中不存在实际上将数据从套接字绑定到特定网络接口的标准化。在每个网络接口存在一个默认路由入口的情况下,能够以多种方式处理不以直接连接的网络为目标的外出话务(即,由默认路由表处理的话务)。这些话务可被发送至套接字所绑定到的网络接口上的网关;发送至默认路由所附连的网络接口上的网关;或被发送至可用网络接口中的任一个,这实际上经常切换实际所使用的网关(例如,WINDOWS 2000)。
然而,如在对于图1所描述的新闻阅读器应用程序的示例中,随着移动设备的出现,标准联网协议可能不够灵活。某些应用程序可能出于包括性能、安全性和可用性的目的而需要对通过其应路由信息的联网接口的更精细粒度的控制。因此,在图3中,已通过将附加上下文映射接口310添加到联网层306而使路由表308可被访问。该上下文映射接口310允许程序员设置从例如基于线程标识的特定线程到基于接口标识的物理网络接口的路由映射。
如图3所示,第一应用程序302和第二应用程序304中的每一个都向上下文映射接口310提供上下文映射信息。上下文映射接口310使用来自第一和第二应用程序302、304的上下文信息来将基于计算上下文的附加上下文路由准则312、314添加到路由表308。上下文路由准则312、314可采用将特定线程标识与由网络接口的IP参数标识的特定网络接口相关的绑定指令的形式。对于需要被路由的任何分组,由路由表308来执行查找。如果分组包括对应于上下文路由准则312、314的上下文信息,则创建套接字(或如果已经创建则选择套接字),启动连接到远程主机的尝试,并且通过所配置的网络接口来发送分组。否则,使用普通路由表来路由该分组。
例如,对于图1的示例性新闻阅读器应用程序,上下文映射接口310可以在由应用程序302、304指示时将GPRS字段312以及Wi-Fi字段314写入路由表308。当在网络层306处接收到具有对应于GPRS网络接口选择的线程标识信息的来自第一应用程序302的线程302a(图3中被指示为虚线对之间具有单个点的虚线)时,基于路由表308的GPRS字段312创建套接字并将其直接绑定到GPRS网络接口316。同样地,当在网络层306处接收到具有对应于Wi-Fi网络接口选择的线程标识信息的来自第一应用程序302的线程302c或者来自第二应用程序304的线程304d(图3中被指示为虚线对之间具有两个点的虚线)时,基于路由表308的Wi-Fi字段314创建套接字并将其直接绑定到Wi-Fi网络接口322。
启用基于计算上下文的套接字绑定因而允许应用程序进行控制,通过该控制,通过简单地将联网接口的联网套接字绑定到可用接口中的一个来路由联网接口话务而不干扰传统路由。添加控制以在通信套接字的核心联网层中启用直接通过路由表到网络接口的隐式绑定允许该联网层也路由与传输控制协议(TCP)或用户数据报协议(UDP)连接不相关的分组,例如,网间控制报文协议(ICMP)以及由受监视的计算上下文生成的密钥交换分组。
图4示意性表示了由应用程序传递至联网层的基于计算上下文的绑定事件400。在该绑定事件400中涉及三个组件:应用程序线程402、线程路由接口404、以及该联网层的路由子系统406。应用程序线程402使用被添加到联网层的路由能力。线程路由接口404是被展示为对现存网络API的扩展的联网层的扩展API。路由子系统406是网络API的一部分。
在绑定事件400的初始操作408中,客户机应用程序线程402收集与随后的网络操作相关的计算上下文。一般地,该计算上下文可以是环境特性的任何集合,例如线程标识、事务标识、纤程标识(纤程是运行在操作系统之上并且不与内核交互的线程)、时间或日期戳、当前处理器负荷、网络成本差异等等。注意,可能的计算上下文的集合是完全可扩展的。然而在图4的示例中,计算上下文只包括线程标识符。
在注册操作410中,客户机应用程序的线程402向线程路由接口API 404注册所获得的计算上下文。在该示例中,来自客户机的线程402将两个参数传递给线程路由接口404:计算上下文特性集和通过其路由在给定上下文中生成的所有话务的网络接口标识符。这会将计算上下文特性与例如以太网电缆或WiFi连接的网络接口相关联。注意,不保证通过通信网络发送至特定设备的话务将始终通过该特定接口被回复,因为在将数据转发至该设备时选择目的地设备的已知地址中的一个是由中间网络来决定的。
在连接操作412中,客户机应用程序的线程402生成网络话务以通过例如直接调用联网API的路由子系统406(例如,通过发送套接字、绑定、连接、或其他网络接口命令)来连接到远程主机。或者,客户机应用程序的线程402可以访问最终访问联网API的库(甚至是对于其没有源可用或对于其程序员不具有改变的权限的库)。路由子系统406然后执行设置操作414,在该操作中,实例化套接字并将其绑定到所标识的网络,将计算上下文映射到给定的网络链路接口,并且将与该线程相关联的信息存储在表中。一旦创建套接字并实现与远程主机的连接,就将完成的连接的通知416返回给线程402。
当线程402在发送操作418中将数据发送至远程主机时,网络API的路由子系统406执行对线程路由接口404的内部查找操作420以确定注册的计算上下文集之一当前是否有效。将来自线程路由接口的绑定信息返回422给路由子系统406。如果找到了相关的计算上下文,则通过对该上下文注册的网络接口(例如,以太网、Wifi等)发送426该数据。对于该数据绕过普通路由表查找。如果在将发送该数据时没有计算上下文是有效的,则执行通过现存的路由表的普通查找操作428并且通过该查找所返回的链路接口来发送430分组。一旦发送该分组,就向线程402提供确认432。
图5示出了来自操作系统的对于创建具有传递自父线程的计算上下文信息的子线程的所需支持。在某些方面,图5可被视作图4的扩展,其描述了如何处理计算上下文映射的自动继承。回想在图4中,如果在数据将通过网络离开客户机时没有计算上下文匹配,则在普通路由表的帮助下路由所有数据。然而,操作系统可被配置为从现存的计算上下文自动地生成导出上下文并且通过与原始上下文相关联的接口发送该数据。
图5的示例示意性表示了基于由应用程序传递至联网层的计算上下文的子线程创建事件500。在子线程创建事件500中涉及三个组件:应用程序线程502、线程路由接口504、以及操作系统的核心内核506。应用程序线程502使用被添加到联网层的路由能力。线程路由接口504是被展示为对现存网络API的扩展的联网层的扩展API。操作系统软件的核心内核506负责提供对计算机硬件以及对各种计算机进程的安全访问。
在注册操作508中,客户机应用程序的父线程502向线程路由接口504API注册所获得的计算上下文。在该示例中,来自客户机的父线程502将两个参数传递给线程路由接口504:计算上下文特性集以及通过其路由在给定上下文中生成的所有话务的网络接口标识符。这会将计算上下文特性与例如以太网电缆或WiFi连接的网络接口相关联。路由子系统504然后执行设置操作510,在该操作中,将计算上下文映射到给定网络链路接口并且将该信息存储在表中。一旦在线程路由接口504的映射表中设置该参数,则将完成的连接的通知512返回给父线程502。
接着,在创建操作514中,原始父线程502创建新的子线程516,该新的子线程开始与父线程502并行地执行另外的进程。然而,在映射表中对于父线程502所记录的计算上下文将不会匹配子线程516的计算上下文,因为由内核506分配给子线程516的线程标识对于该特定进程是唯一的。为了将父线程502的各计算上下文特性转移到子线程516,需要修改内核506以使得只要创建新线程就将通知发送给线程路由接口504。
两个参数被传递至线程路由接口504:父线程502的线程标识参数以及子线程516的线程标识参数。这些参数在传递操作518中从内核506传递至线程路由接口504以创建继承关系。线程路由接口504更新映射表以标识套接字并且将父线程502的网络接口与子线程516绑定。一旦更新了线程路由接口504的映射表,就将完成的操作的通知522返回给内核506。
现在当子线程516在发送操作524中将数据发送至远程主机时,可以将父线程502和子线程516两者的参数传递至网络API的路由子系统。如对于图4所描述的,路由子系统执行对线程路由接口504API的内部查找操作以确定注册的计算上下文集中的一个当前是否有效。将来自线程路由接口504的绑定信息返回给路由子系统,该信息将子线程516标识为与父线程502相同的套接字和网络接口相关联。因此,如在与发送操作524相关联的通知526中所指示的,通过对与父线程502和子线程516两者都相关联的上下文注册的网络接口来发送数据。
图6描绘了在基于位置的高速缓存系统中使用的示例性移动设备600。该移动设备600包括如在任何标准计算设备中的处理器602以及存储器604。下文中所描述的处理器602、存储器604、以及其他组件可以通过系统总线614来接口。系统总线614可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、交换光纤、点对点连接、以及局部总线。存储器604一般包括易失性存储器(例如,RAM)和非易失性存储器(例如,ROM或PCMCIA卡)。操作系统606可以驻留在存储器604中并且在处理器602上执行。一个示例性操作系统可以是来自微软公司的WINDOWS CE操作系统。
一个或多个应用程序606可被加载到存储器604中以由处理器602结合操作系统606来执行。示例性应用程序可包括电子邮件程序、时间安排程序、个人信息管理程序、文字处理程序、电子数据表程序、因特网浏览器程序、音乐文件管理程序、以及照片和视频文件管理程序。存储器604还可包括在处理器602上执行的通知管理器610。如将在以下更详细描述的,通知管理器610处理从应用程序608到一个或多个用户通知设备的通知请求。
移动计算设备600还具有可以使用一个或多个电池来实现的电源612。通过使用代替电池或为电池重新充电的与移动设备600相连接的电源线或供电数据传输电缆,电源612也可以来自外部AC源。电源612被连接到移动设备600的大多数(如果不是全部)组件以供每个组件工作。
在一个实施例中,移动设备600可包括通信能力,例如,移动设备600作为无线电话来工作。具有电话能力的无线设备600一般包括用于与无线电话网接口的天线616、发射机618、以及接收机620。另外,移动设备600可包括话筒634以及扬声器636以供用户进行电话通信。扬声器636还可以是用于与有线或无线耳机或头戴式耳机相连接的有线或无线输出端口的形式。
移动设备600可以通过一个或多个通信接口622与众多其他网络相连接,例如,无线LAN(Wi-Fi)网络、有线LAN或WAN、GPRS、蓝牙、UMTS或任何其他网络。天线616或多根天线可用于不同的通信目的,例如,射频识别(RFID)、微波发射和接收、Wi-Fi发射和接收、以及蓝牙发射和接收。
移动设备600一般还包括某一类型的用户界面。如图6所示,移动设备600可具有键盘624和显示器626。键盘624可以是有限数字触摸垫、全“qwerty”键盘、或两者的组合。键盘624也可包括专用按钮、滚轮、跟踪球、以及其他界面选项,例如,菜单选择或导航键或电话功能键。除了描绘信息之外,显示器626还可以是触摸屏显示器,该显示器是允许通过用用户的手指或指示笔触摸显示屏以通过图形界面来做出输入选择或直接在在显示器626上写字母和数字来输入数据。
移动设备600还可具有一个或多个外部通知机制。在图6所描绘的实施例中,移动设备600包括音频生成器628、发光二极管(LED)630、以及振动设备632。这些设备可直接耦合到电源612,使得当被激活时,即使处理器602以及其它组件可能关闭以节省电池电量,它们也可保持一段由通知管理器610指示的保持通电时间。
用于实现本发明的图7的示例性硬件和操作环境包括计算机700形式的通用计算设备,包括处理单元702、系统存储器704、以及操作上将包括系统存储器704在内的各种系统组件耦合至处理单元702的系统总线718。可以只存在一个或者存在一个以上处理单元702,使得计算机700的处理器包括单个中央处理单元(CPU),或者多个处理单元,通常称为并行处理环境。计算机700可以是常规计算机、网络服务器、分布式计算机、或者任何其他类型的计算机;本发明不限于此。
系统总线718可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、交换光纤、点对点连接、以及使用各种总线体系结构中的任一种的局部总线。系统存储器704可被简单地称为存储器,并且包括只读存储器(ROM)706和随机存取存储器(RAM)705。基本输入/输出系统(BIOS)708被存储在ROM 706中,它包含诸如启动期间帮助在计算机700内的各元件之间传递信息的基本例程。计算机700还包括用于对硬盘(未示出)进行读写的硬盘驱动器730、用于对可移动磁盘736进行读写的磁盘驱动器732、以及用于对可移动光盘738,如CD-ROM或其它光介质进行读写的光盘驱动器734。
硬盘驱动器730、磁盘驱动器732和光盘驱动器734分别由硬盘驱动器接口720、磁盘驱动器接口722和光盘驱动器接口724连接到系统总线718。驱动器及其关联的计算机可读介质为计算机700提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域的技术人员应理解,在示例操作环境中可以使用可储存可由计算机访问的数据的任何类型的计算机可读介质,例如,磁带盒、闪存卡、数字视频盘、RAM、以及ROM。
在硬盘730、磁盘732、光盘734、ROM 706、或RAM 705上可以存储多个程序模块,包括操作系统710、一个或多个应用程序712、其它程序模块714、以及程序数据716。用户可通过诸如键盘740和定点设备742等输入设备向个人计算机700中输入命令和信息。其他输入设备(未示出)可包括,例如,话筒、操纵杆、图形输入板、触摸屏设备、圆盘式卫星天线、扫描仪、传真机、以及摄像机。这些和其它输入设备通常通过耦合到系统总线718的串行端口接口726连接到处理单元702,但也可通过其它接口连接,如并行端口、游戏端口、或通用串行总线(USB)。
监视器744或其它类型的显示设备也经由接口,诸如视频适配器746连接至系统总线718。除监视器744之外,计算机通常还包括其它外围输出设备,如打印机758和扬声器(未示出)。这些和其它输入设备通常通过耦合到系统总线718的串行端口接口726连接到处理单元702,但也可通过其它接口连接,如并行端口、游戏端口、或通用串行总线(USB)。
计算机700可使用至一个或多个远程计算机,诸如远程计算机754的逻辑连接在网络化环境中操作。这些逻辑连接可由耦合至计算机700或者与计算机700整合的通信设备来实现;本发明不限于特定类型的通信设备。远程计算机754可以是另一计算机(例如,移动计算设备)、服务器、路由器、网络个人计算机、客户机、对等设备或其它常见的网络节点,并且通常包括许多或所有相对于计算机700所描述的元件,尽管图7仅示出了存储器存储设备756。图7所描绘的逻辑连接包括局域网(LAN)750和广域网(WAN)752。这样的网络环境常见于办公室网络、企业范围计算机网络、内联网和因特网,并且可以是所有类型的网络。
当在LAN 750环境中使用时,计算机700可以通过作为一种类型的通信设备的网络接口或适配器728来连接到局域网750。当在WAN 752环境中使用时,计算机700通常包括调制解调器748、网络适配器、或用于通过广域网752建立通信的任何其他类型的通信设备。或为内置或为外置的调制解调器748经由串行端口接口726连接到系统总线718。在网络化环境中,相对于个人计算机700所描绘的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段和通信设备。
在示例性实现中,上下文路由接口可以作为操作系统710、应用程序712、或其他程序模块714的一部分来包含。状态描述文件、对象数据值、以及其他数据可作为程序数据716来存储。
此处所描述的技术可被实现为一个或多个系统中的逻辑操作和/或模块。逻辑操作可被实现为在一个或多个计算机系统中执行的处理器实现的步骤的序列以及在一个或多个计算机系统中的互连机器或电路模块。同样地,各组件模块的描述可以按照由模块执行或实现的操作来提供。所得的实现是取决于实现所描述的技术的底层系统的性能要求的选择问题。从而,组成此处所述的技术的实施例的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应该理解,除非以其他方式明确地要求保护或权利要求语言固有地需要一特定的次序,否则逻辑操作可以按任何次序来执行。
以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的全面描述。尽管以上带着一定程度的特殊性或对一个或多个单独实施例的参考描述了本发明的各实施例,但是本领域的技术人员能够对所公开的实施例做出多种改变而不背离本发明的精神或范围。更具体地,应该理解,所描述的技术可以独立于个人计算机采用。因此可构想其他实施例。其目的是以上描述中所包含以及在附图中所示出的所有一切应当解释为仅仅是例示特定实施例而非限制。可以对细节或结构做出更改而不背离如所附权利要求书中定义的本发明的基本要素。

Claims (20)

1.一种用于将数据路由到网络接口(400)的方法,包括:
接收通过通信网络发送数据的请求(418);
标识与所述数据相关联的计算上下文(408);
将所述计算上下文作为路由准则来包括(414);以及
基于所述计算上下文将所述数据路由到至所述通信网络的特定网络接口(424)。
2.如权利要求1所述的方法,其特征在于,还包括经由所述特定网络接口发送所述数据。
3.如权利要求1所述的方法,其特征在于,所述路由操作还包括将所述计算上下文映射到所述特定网络接口。
4.如权利要求1所述的方法,其特征在于,所述路由操作还包括:
实例化通信套接字;
将所述通信套接字与所述计算上下文相关联;以及
将所述通信套接字绑定到所述特定网络接口。
5.如权利要求1所述的方法,其特征在于,所述计算上下文包括可扩展计算上下文集。
6.一种具有用于执行实现如权利要求1所述的方法的计算机进程的计算机可执行指令的计算机可读介质。
7.一种用于将数据路由到多个网络接口中的一个(400)的方法,包括:
标识与所述数据相关联的计算上下文(408);以及
基于所述相关联的计算上下文做出关于通过所述多个网络接口中的一个来传输数据的路由决定(420)。
8.如权利要求6所述的方法,其特征在于,还包括:
将所述计算上下文映射到所述特定网络接口以创建映射的关系;以及
存储所述映射的关系;以及
其中所述做出路由决定的操作还包括访问所述映射的关系以确定所述多个网络接口中用于路由所述数据的传输的一个网络接口。
9.如权利要求6所述的方法,其特征在于,所述计算上下文包括执行应用程序的进程线程。
10.如权利要求9所述的方法,其特征在于,所述进程线程创建子进程线程,并且所述方法还包括:
将所述进程线程的计算上下文与所述子进程线程相关联;以及
基于所述进程线程的计算上下文做出关于通过所述多个网络接口中的一个来传输由所述子进程线程生成的另外的数据的路由决定。
11.如权利要求6所述的方法,其特征在于,所述计算上下文包括可扩展计算上下文集。
12.一种具有用于执行实现如权利要求6所述的方法的计算机进程的计算机可执行指令的计算机可读介质。
13.一种在具有多个网络接口(112、114、116)的计算设备中做出网络接口路由决定(400)的方法,所述方法包括:
作为应用程序进程的一部分,向联网层呈现标识所述计算设备的计算上下文的参数(410);
将所述参数映射到在所述应用程序进程与所述联网层之间提供的路由接口中的特定网络接口以创建映射的关系(414);
将所述参数与发送自所述应用程序进程以供传输的数据相关联(408);
将与所述数据相关联的所述参数与所述映射的关系相比较(420);以及
将所述数据路由到所述参数所映射到的所述特定网络接口(424)。
14.如权利要求12所述的方法,其特征在于,所述路由还执行以下步骤:
创建通信套接字;
将所述通信套接字与所述计算上下文相关联;以及
将所述通信套接字绑定到所述特定网络接口。
15.如权利要求12所述的方法,其特征在于,还包括向所述联网层注册所述映射的关系。
16.如权利要求14所述的方法,其特征在于,所述注册操作还包括:
将所述映射的关系存储在路由表中;以及
从所述路由表访问所述映射的关系。
17.如权利要求12所述的方法,其特征在于,所述参数包括进程线程标识。
18.如权利要求12所述的方法,其特征在于,所述参数包括可扩展计算上下文集。
19.如权利要求12所述的方法,其特征在于,还包括:
从所述应用程序进程创建子应用程序进程;以及
将所述映射的关系归属于所述子应用程序进程,其中
所述参数还与发送自所述子应用程序进程的另外的数据相关联。
20.一种具有用于执行实现如权利要求12所述的方法的计算机进程的计算机可执行指令的计算机可读介质。
CN2007800092849A 2006-03-13 2007-02-08 使用计算上下文的网络接口路由 Expired - Fee Related CN101405993B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/373,954 2006-03-13
US11/373,954 US7821985B2 (en) 2006-03-13 2006-03-13 Network interface routing using computational context
PCT/US2007/003514 WO2007106267A1 (en) 2006-03-13 2007-02-08 Network interface routing using computational context

Publications (2)

Publication Number Publication Date
CN101405993A true CN101405993A (zh) 2009-04-08
CN101405993B CN101405993B (zh) 2012-03-07

Family

ID=38478845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800092849A Expired - Fee Related CN101405993B (zh) 2006-03-13 2007-02-08 使用计算上下文的网络接口路由

Country Status (5)

Country Link
US (1) US7821985B2 (zh)
EP (1) EP1999892B1 (zh)
KR (1) KR20090003224A (zh)
CN (1) CN101405993B (zh)
WO (1) WO2007106267A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761518A (zh) * 2011-04-25 2012-10-31 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
CN106797383A (zh) * 2014-10-07 2017-05-31 微软技术许可有限责任公司 多租户环境中的安全性上下文管理
CN109445880A (zh) * 2018-10-23 2019-03-08 数贸科技(北京)有限公司 跨线程调用链上下文的传递方法、装置及电子设备
CN112106044A (zh) * 2018-03-16 2020-12-18 利玛格有限公司 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质
CN112491575A (zh) * 2019-09-11 2021-03-12 手持产品公司 在联网环境中由对等电子设备配置远程电子设备

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7466694B2 (en) * 2006-06-10 2008-12-16 Cisco Technology, Inc. Routing protocol with packet network attributes for improved route selection
FR2903549B1 (fr) * 2006-07-10 2008-09-26 Inside Contactless Sa Procede de controle d'application dans un chipset nfc comprenant plusieurs processeurs hotes
US8364850B2 (en) * 2006-07-20 2013-01-29 Qualcomm Incorporated Utility service in multi-processor environment
US8588062B1 (en) * 2007-02-27 2013-11-19 Sprint Communications Company L.P. Application based access selection
US20090215398A1 (en) * 2008-02-25 2009-08-27 Adler Mitchell D Methods and Systems for Establishing Communications Between Devices
US8458733B2 (en) * 2008-03-12 2013-06-04 Microsoft Corporation Global API deployment and routing
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8447865B2 (en) * 2008-06-20 2013-05-21 Microsoft Corporation Optimal source interface selection
US8407721B2 (en) 2008-12-12 2013-03-26 Microsoft Corporation Communication interface selection on multi-homed devices
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
CN101854311A (zh) * 2009-03-31 2010-10-06 国际商业机器公司 在web服务器上传递上下文信息的方法和装置
EP2237531B1 (en) * 2009-03-31 2013-05-08 Sony Corporation Network comprising a plurality of devices and root device and method for assigning a network address
KR20110063297A (ko) * 2009-12-02 2011-06-10 삼성전자주식회사 휴대용단말기 및 그 제어방법
US8510409B1 (en) * 2009-12-23 2013-08-13 Emc Corporation Application-specific outbound source routing from a host in a data network
US8655985B2 (en) * 2010-11-15 2014-02-18 International Business Machines Corporation Content delivery using multiple sources over heterogeneous interfaces
US20120317153A1 (en) * 2011-06-07 2012-12-13 Apple Inc. Caching responses for scoped and non-scoped domain name system queries
US9294389B2 (en) * 2011-06-23 2016-03-22 Cisco Technology, Inc. Method to select interface for IP packets when destination subnet is reachable on multiple interfaces
US8665847B2 (en) 2011-11-08 2014-03-04 Microsoft Corporation Service-assisted network access point selection
US9398525B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Selecting a network for a wireless device
US20140351832A1 (en) * 2013-05-21 2014-11-27 Samsung Electronics Co., Ltd. Electronic device using framework interface for communication
US10057302B2 (en) 2013-11-15 2018-08-21 Microsoft Technology Licensing, Llc Context-based selection of instruction sets for connecting through captive portals
US9369342B2 (en) 2013-11-15 2016-06-14 Microsoft Technology Licensing, Llc Configuring captive portals with a cloud service
US10382305B2 (en) 2013-11-15 2019-08-13 Microsoft Technology Licensing, Llc Applying sequenced instructions to connect through captive portals
US9554323B2 (en) 2013-11-15 2017-01-24 Microsoft Technology Licensing, Llc Generating sequenced instructions for connecting through captive portals
US9313171B2 (en) * 2013-11-19 2016-04-12 Cisco Technology, Inc. Path selection in a multi-service and multi-tenant secure cloud environment
US10405365B2 (en) 2015-12-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for web browsing on multihomed mobile devices
CN112702338B (zh) * 2020-12-22 2022-07-01 杭州迪普科技股份有限公司 Ike报文获取方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311186B1 (en) * 1998-02-20 2001-10-30 Priority Call Management, Inc. Telecommunications switching system utilizing a channelized database access mechanism
US6272518B1 (en) * 1998-08-17 2001-08-07 International Business Machines Corporation System and method for porting a multithreaded program to a job model
US6449657B2 (en) * 1999-08-06 2002-09-10 Namezero.Com, Inc. Internet hosting system
US6961934B2 (en) * 2000-05-08 2005-11-01 Microtune (San Diego), Inc. Portable thread environment
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
US20030225839A1 (en) * 2002-06-04 2003-12-04 Dragan Kopunovic Knowledge router
US7305493B2 (en) * 2002-11-27 2007-12-04 Intel Corporation Embedded transport acceleration architecture
US7706785B2 (en) * 2003-01-22 2010-04-27 International Business Machines Corporation System and method for context-aware unified communications
US20050055463A1 (en) * 2003-05-16 2005-03-10 Verilegal, Inc. Secure internet functionality
ATE427601T1 (de) * 2004-07-01 2009-04-15 Alcatel Lucent Verfahren zur auswahl zwischen netzwerkschnittstellen, gerat mit mehreren netzwerkschnittstellen und verarbeitungsschicht
US7913254B2 (en) * 2004-10-11 2011-03-22 International Business Machines Corporation Method and system for mapping threads or tasks to CPUs in a parallel computer

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761518A (zh) * 2011-04-25 2012-10-31 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
WO2012146160A1 (zh) * 2011-04-25 2012-11-01 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
CN102761518B (zh) * 2011-04-25 2015-04-01 中兴通讯股份有限公司 一种支持多种套接字连接模式的通信方法及服务器
CN106797383A (zh) * 2014-10-07 2017-05-31 微软技术许可有限责任公司 多租户环境中的安全性上下文管理
CN106797383B (zh) * 2014-10-07 2020-03-20 微软技术许可有限责任公司 多租户环境中的安全性上下文管理的方法、系统和介质
CN112106044A (zh) * 2018-03-16 2020-12-18 利玛格有限公司 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质
CN109445880A (zh) * 2018-10-23 2019-03-08 数贸科技(北京)有限公司 跨线程调用链上下文的传递方法、装置及电子设备
CN112491575A (zh) * 2019-09-11 2021-03-12 手持产品公司 在联网环境中由对等电子设备配置远程电子设备
CN112491575B (zh) * 2019-09-11 2023-10-27 手持产品公司 在联网环境中由对等电子设备配置远程电子设备
US11943102B2 (en) 2019-09-11 2024-03-26 Hand Held Products, Inc. Configuring a remote electronic device by a peer electronic device in a networked environment

Also Published As

Publication number Publication date
EP1999892A1 (en) 2008-12-10
WO2007106267A1 (en) 2007-09-20
EP1999892B1 (en) 2012-09-19
EP1999892A4 (en) 2011-10-05
US20070211690A1 (en) 2007-09-13
KR20090003224A (ko) 2009-01-09
CN101405993B (zh) 2012-03-07
US7821985B2 (en) 2010-10-26

Similar Documents

Publication Publication Date Title
CN101405993B (zh) 使用计算上下文的网络接口路由
Chetan et al. Mobile gaia: a middleware for ad-hoc pervasive computing
Samulowitz et al. Capeus: An architecture for context-aware selection and execution of services
Becker et al. Base-a micro-broker-based middleware for pervasive computing
Costa et al. The RUNES middleware: A reconfigurable component-based approach to networked embedded systems
EP2526734B1 (en) Hierarchical routing and interface selection for multi-processor multimode network devices
EP2111054B1 (en) Communication terminal, management device, communication system, and program
Riva Contory: A middleware for the provisioning of context information on smart phones
CN107615791B (zh) 用于添加m2m服务的装置和方法
US9094483B2 (en) System and method for collecting and evaluating statistics to establish network connections
Gaddah et al. A survey of middleware paradigms for mobile computing
WO2003079216A1 (en) System and method for adapting preferences based on device location or network topology
CN113783922A (zh) 负载均衡的方法、系统和装置
CN103997521A (zh) 一种基于路由器的文件操作方法、装置及路由器
US20110047539A1 (en) Software defined radio management
Ibach et al. Highly available location-based services in mobile environments
Mascolo et al. Survey of middleware for networked embedded systems
CN111164951A (zh) 基于服务能力要求和偏好的服务注册
Landis et al. Reaching out to the cell phone with Jini
Chetan et al. A middleware for enabling personal ubiquitous spaces
US7933880B2 (en) System and method of application persistence
Schmohl et al. Mobile services based on client-server or p2p architectures facing issues of context-awareness and heterogeneous environments
Urra et al. Mobile agents and mobile devices: Friendship or difficult relationship?
Bromberg et al. Interoperability of service discovery protocols: Transparent versus explicit approaches
Pinte et al. Network-aware references for pervasive social applications

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

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

Effective date of registration: 20150504

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

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

Granted publication date: 20120307