CN101405993A - 使用计算上下文的网络接口路由 - Google Patents
使用计算上下文的网络接口路由 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000013507 mapping Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 abstract description 2
- 230000006855 networking Effects 0.000 description 20
- 230000015654 memory Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 235000019994 cava Nutrition 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005469 granulation Methods 0.000 description 1
- 230000003179 granulation Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5691—Access to open networks; Ingress point selection, e.g. ISP selection
- H04L12/5692—Selection among different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating 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所述的方法的计算机进程的计算机可执行指令的计算机可读介质。
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)
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)
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)
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 |
-
2006
- 2006-03-13 US US11/373,954 patent/US7821985B2/en not_active Expired - Fee Related
-
2007
- 2007-02-08 KR KR1020087022434A patent/KR20090003224A/ko not_active IP Right Cessation
- 2007-02-08 CN CN2007800092849A patent/CN101405993B/zh not_active Expired - Fee Related
- 2007-02-08 EP EP07750357A patent/EP1999892B1/en not_active Not-in-force
- 2007-02-08 WO PCT/US2007/003514 patent/WO2007106267A1/en active Application Filing
Cited By (10)
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 |