CN101375269A - 用于设备驱动程序的下载服务 - Google Patents

用于设备驱动程序的下载服务 Download PDF

Info

Publication number
CN101375269A
CN101375269A CNA2007800037748A CN200780003774A CN101375269A CN 101375269 A CN101375269 A CN 101375269A CN A2007800037748 A CNA2007800037748 A CN A2007800037748A CN 200780003774 A CN200780003774 A CN 200780003774A CN 101375269 A CN101375269 A CN 101375269A
Authority
CN
China
Prior art keywords
driver
device driver
request
equipment
metadata
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.)
Pending
Application number
CNA2007800037748A
Other languages
English (en)
Inventor
E·E·格瑞弗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
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 CN101375269A publication Critical patent/CN101375269A/zh
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

用于为设备驱动程序提供下载服务的系统和方法包括客户和驱动程序下载服务。客户从该驱动程序下载服务请求可从中取得设备驱动程序的位置。该驱动程序下载服务用从中可取得该设备驱动程序的位置作为响应。客户随后请求来自每一个所述位置的设备驱动程序。

Description

用于设备驱动程序的下载服务
背景
现代计算系统通常使用外围设备,无论这些设备是直接连接至该计算系统还是经由局域网或广域网对计算系统可访问。一般而言,这类外围设备包括相关联的设备驱动程序,这些驱动程序是能让计算系统完全利用外围设备的软件包。
外围设备制造商通常在例如致密盘(CD)、软盘或其他机器可读介质上提供设备驱动程序,包括在该外围设备的包装内包括这类介质。当把新的外围设备安装到计算系统上时,用户通常将该介质载入到计算系统内,使得操作系统或其他实体能够从该介质中读取设备驱动程序并安装该设备驱动程序。
虽然在某些情况下是可行的,但是前述方法仍然有一些缺点。用户承受着在安装新外围设备时,或是在将该外围设备从一台机器移动至另一台机器时不得不装载驱动程序的负担。然而,含有驱动程序的介质时常会随时间丢失或损坏,从而导致驱动程序无法获取。此外,外围设备制造商通常在制造设备时装载介质。然而,设备驱动程序在外围设备的预期使用寿命期间可能会频繁更新,从而导致最初提供的设备驱动程序变得过时。
解决前述问题的一种方法是制造商在例如可经因特网访问的网站上提供更新的设备驱动程序。虽然这对有经验的或精明的用户可行,但是从制造商的网站上查找、访问和装载设备驱动程序的过程对许多用户而言仍然是令人气馁且易出错的。例如,每个制造商可以不同地组织其网站,且每个网站可以呈现不同的界面用于查找、下载和安装设备驱动程序。不得不定位并安装来自不同制造商的各类驱动程序的用户可能会变得泄气且迷惑。同样地,这种方法仅在用户具有因特网连接性的情况下可行:如果用户丢失了含有设备驱动程序的原始介质,并且不具有因特网连接,用户可能会陷入绝境。
在另一种方法中,存储系统或其他系统级实体的供应商可以提供更新服务。这一更新服务可以从先前存在的设备驱动程序存储中自动搜索并定位合适的设备驱动程序。概括说来,这些服务通过接收指示被查找驱动程序的设备类型的唯一标识符,并且通过在设备驱动程序的存储内搜索匹配该输入唯一标识符的条目来进行操作。设备驱动程序的存储可由操作系统本地维护,或者可经因特网访问。然而在任一情况下,设备驱动程序的位置事先是已知的;唯一的问题是该位置是否含有合适的驱动程序。
概述
用于为设备驱动程序提供下载服务的系统、方法和/或技术(“工具”)包括客户和驱动程序下载服务。客户请求来自该驱动程序下载服务的可从中取得设备的驱动程序的位置。该驱动程序下载服务用从中可取得该设备驱动程序的位置作为响应。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键或本质特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
结合以下附图描述用于为设备驱动程序提供下载服务的工具。贯穿本公开和各附图,相同的编号参考相同的组件和特征。参考编号的第一位指示其中引入该参考编号的附图。
图1是用于为设备驱动程序提供下载服务的操作环境的框图。
图2是与下载服务可为其提供设备驱动程序的给定设备相关的示例性元数据的框图。
图3是用以获取设备驱动程序的位置的示例性请求内容的框图。
图4是对图1和图3所示请求的说明性响应内容的框图。
图5是用于请求设备驱动程序位置的过程的流程图。
图6是用于响应对设备驱动程序位置信息请求的过程的流程图。
详细描述
概览
下文描述可以实现许多技术和过程的工具。以下的讨论描述在其中工具为设备驱动程序提供下载服务的示例性方式。这一讨论还描述由工具执行的其他技术。
仅为便利而非限制,将本文组成多节,且每节都由相应的标题引入。首先,结合图1描述操作环境。图1示出了关联于为设备驱动程序提供下载服务的操作环境,并且还提供了示例性的数据流。
接下来,结合图2-4描述数据结构和模式。图2-4示出了设备元数据、对设备驱动程序位置的请求、以及对这类请求的响应的示例。
最后,结合图5-6描述了过程流程和协议。图5-6示出了用于请求从中可取出设备驱动程序的位置并用于响应这类请求的示例性过程流程和协议。
操作环境
图1例示出适合于为设备驱动程序提供下载服务的操作环境100。操作环境100可以包括一个或多个客户102。图1为了例示方便仅示出一个代表性客户102,但这并非限制操作环境100的可能实现。一般而言,操作环境100可以包括任何数量的客户102。客户102可以包括计算设备,诸如网络或其他服务器、台式计算机、膝上型或笔记本计算机、移动电话、个人数字助理(PDA)、手持式计算机等。
客户102可以包括一个或多个处理器104和计算机可读介质106。计算机可读介质106可以包含指令,这些指令在由处理器104执行时执行本文所述的任何工具。处理器104可被配置为访问和/或执行在计算机可读介质106上具体化或编码的指令。处理器104还可被分类或者特征化为有给定的体系结构。
计算机可读介质106还可以包括操作系统108,该操作系统108可以采取任何通信可用操作系统的形式。操作系统108的合适但非限制性示例包括可从华盛顿州雷蒙德市的微软公司购得的
Figure A200780003774D0007164033QIETU
系列操作系统中的任一种。操作系统108的其他示例包括任一种操作系统或者可从加州库珀蒂诺市苹果计算机公司购得的任一种操作系统。
计算机可读介质106还可以包括驱动程序请求组件110。驱动程序请求组件110可以实现为模块、程序或者能与客户102外部的一个或多个实体直接或间接交互的其他实体。如下将结合对各工具的描述对驱动程序请求组件110的例示功能和能力做出详细说明。总的说来,驱动程序请求组件110使客户102能够请求并获取对应于一个或多个设备114的一个或多个设备驱动程序112。
客户102可以通过相应的链接116连接至一个或多个设备114。图1为了例示方便示出一个代表性设备114,但这并非对操作环境100可能实现的限制。设备114可以直接耦合至客户102。在这种情况下,链接114例如可包括USB线缆和相关端口。
在其它情况下,设备114可以通过网络耦合至客户102。为了例示简明,未在图1中示出该网络,但是该网络可以采取任何合适形式并且通常由链接116代表。例如,该网络可以是局域网(LAN)、诸如因特网的广域网(WAN)、或者是它们的任意组合。在这类情况下,客户102可以经该网络访问设备114。相反地,设备114可以经该网络在多个客户102之间共享。
设备114可以是客户102外部或外围的任何设备。设备114的说明性但非限制性示例包括打印机、多功能外围(MFP)、扫描仪、照相机、话筒等。
设备114的实例与相应的设备驱动程序112相关联。当设备114或者连接至客户102或者客户可经网络对其进行访问时,客户102可以使用本文所述的工具来获取合适的设备驱动程序112。例如,操作系统108可以检测设备114,并且可以进一步确定它不具有用于该设备114的设备驱动程序112。作为替换,操作系统108可以具有用于该设备114的设备驱动程序112,但是可以确定该设备驱动程序112已过时。
为了支持本文所述工具的操作,设备114可以包括元数据118,用以指定客户102可以从哪获取用于该设备驱动程序112的新文件或更新文件。这些元数据118的示例如下在图3中示出并描述。
在任何情况下,无论是为了获取还是为了更新该设备驱动程序112,客户102上的组件可以提交请求以获取合适设备驱动程序112的位置。作为该请求的一部分,客户102可以请求并接收来自设备102的元数据118。元数据118指定客户102可以从中请求设备驱动程序112的位置或端点。给定该信息,客户102于是就可以把针对设备驱动程序112的合适请求引导至在元数据118中指定的一个或多个端点。图1示出了作为设备驱动程序请求120的这一请求的示例。例如,驱动程序请求组件110可以提交获得设备驱动程序请求120。
获得设备驱动程序请求120可被提交给驱动程序下载服务122。在由元数据118指定的每个端点处提供驱动程序下载服务122的实例。而在一个可能实现中,驱动程序下载服务122可由设备114主存。在另一个可能实现中,驱动程序下载服务122可由服务多个客户102的中央实体主存,该中央实体例如可以是在企业环境中利用的服务器。驱动程序下载服务122也可以由设备114的制造商主存,并且可经诸如互联网的广域网进行访问。
在任何情况下,主存驱动程序下载服务122的实体可以包括计算设备,该计算设备又可包括处理器124和计算机可读介质126。计算机可读介质126可以包括驱动程序下载组件128,该组件使用本文描述的工具接收并服务获得设备驱动程序请求120。驱动程序下载组件128为获得设备驱动程序请求120提供设备驱动程序包响应130。例如,设备驱动程序组件110可以接收并处理设备驱动程序包响应130。设备驱动程序112进而通过例如操作系统108或驱动程序请求组件110得以在客户102上安装。
可以理解此处的描述使用术语“获得设备驱动程序请求”、“驱动程序请求组件”、“设备驱动程序包响应”以及“驱动程序下载组件”仅仅是为了简便而非限制。还应理解,操作环境100的各实现可以提供其他类似的但名称不同的功能性。
数据结构和模式
在图1中描述了操作环境100之后,本讨论转向可由操作环境100中各组件利用的各数据结构和模式的描述。该描述从对元数据118的更详细讨论开始。现将结合图2描述元数据118的示例。
图2示出了与给定设备114相关的元数据118,其中驱动程序下载组件128可以为给定设备114提供设备驱动程序112。客户102可用的各种设备114中的至少一些存储对应元数据118的实例。对于给定的设备114,元数据118可以包括标识该元数据118属于哪一设备114的设备ID字段202。
元数据118的字段204、206和208对应于从中可获取设备驱动程序112的各个位置或端点。字段204、206和208中的至少一个由元数据118的给定实例填充。
而在一个可能实现中,设备驱动程序112可以由管理员或者管理一个或多个客户102的其他人集中在一给定位置。在这类实现中,字段204可以包含对一管理端点的引用,而该管理端点则对应于其中可定位设备驱动程序112的驱动程序下载组件128。管理端点可经由例如公司或其他内联网,或经因特网访问。对特定管理端点的引用可由负责的管理员为给定企业定义。
在另一个可能实现中,设备驱动程序112可以从例如由设备114的制造商提供的网站得到。在这类实现中,字段206可以包含对制造商端点的引用,诸如对由制造商或其他独立硬件厂商(IHV)主存的网站或web服务的引用。设备驱动程序112可以从主存在制造商端点的驱动程序下载组件128得到,而该制造商端点例如可经因特网访问。
在另一个可能实现中,设备驱动程序112可以从主存在设备114本身上的驱动程序下载组件128得到。在这类实现中,字段308包含对一设备端点的引用,而在该设备端点中就可从主存在该设备114上的驱动程序下载组件128获得设备驱动程序112。在客户102不具有网络连接性的情况下,可以指导客户102从设备114获取设备驱动程序112。
在对元数据118的以上字段202-208的说明和描述中,应该理解元数据118或其等效结构的实现可以包括图2所示字段之外的其他字段。图2所示的说明的可扩展特性由图2所示的省略号传达。
注意到,例如设备114可以在请求时提供来自驱动程序请求组件110,或者更概括地来自客户102的元数据118。这请求可以被标记为“获得设备元数据”请求等。客户102和/或驱动程序请求组件110可以如图1所示使用元数据118填充一个或多个获得设备驱动程序请求120的至少一部分。
对于填充了给定设备114的元数据118的端点(例如,204、206和/或208)而言,驱动程序请求组件110可以将一对应的获得设备驱动程序请求120填充并发送到这些端点,直到设备驱动程序112被成功获取。例如,驱动程序请求组件110可以用来自元数据118的设备ID字段202填充请求120中的一字段。
在给定的端点处,驱动程序下载组件126可以参考请求118中的设备ID字段202以确定是为哪一设备114寻找驱动程序112。驱动程序下载组件126于是就能够搜索用于该设备114的设备驱动程序112。例如,可以将多个设备驱动程序112收集在一数据存储中以供驱动程序下载组件128参考。可以对数据存储进行搜索以定位与输入获得设备驱动程序请求120中的设备ID字段相匹配的设备驱动程序112。
用于给定设备114的元数据118最初可由设备114的制造商填充。元数据118例如可被存储在设备114的固件中。在一些实例中,由设备114的制造商存储的元数据118可以由例如管理多个客户102的系统管理员来替换或盖写。
这些描述使用如下的句法来定义消息的标准大纲。句法实现为XML实例,而呈斜体的值指示数据类型而不是值。将字符附至元素和属性以指示基数如下:
·″?″(0或1)
·″*″(0或以上)
·″+″(1或以上)
·字符“|”用于指示在两替换间的选择。
·字符“[”和“]”用于指示所含各项要相对于基数或选择以按一组处理。
省略号(即,“...”)指示允许其他子或属性内容的可扩充点。可以将额外的子和/或属性MAY添加到该指示的扩展点处。
元数据118的一个基于XML的示例性实现如下表示:
<dds:DriverDownloadLocations>
  <dds:DeviceIdentifier>xs:anyURI</dds:DeviceIdentifier>
  [<dds:AdminastrativeEPR>
     endpoint-reference
  </dds:AdminastrativeEPR>]?
  [<dds:ManufacturerEPR>
     endpoint-reference
  </dds:ManufacturerEPR>]
 [<dds:DeviceEPR>
    endpoint-reference
 </dds:DeviceEPR>]?
 ...
</dds:DriverDownloadLocations>
在描述了对各类设备114可用的元数据118的示例之后,该描述转向获得设备驱动程序请求120,如在图3中更为详细地示出的。
图3示出了图1所示的获得设备驱动程序请求120的示例性内容。例如,获得设备驱动程序请求120可以实现为从客户102传递到在元数据118中指定的每个端点处提供的驱动程序下载服务122的消息。获得设备驱动程序请求120可以包括设备标识符(ID)字段302,该字段用于标识为其搜索驱动程序112的设备114,并用于获取该设备114的正确设备驱动程序112。
操作系统ID字段304指示客户102上的操作系统108。应理解可以为在不同客户102上运行的不同操作系统108提供不同的设备驱动程序112。
体系结构ID字段306标识客户102上处理器104的体系结构。应理解可以为在客户102上运行的不同体系结构和不同操作系统108提供不同的设备驱动程序112。这类体系结构的非限制性示例可以包括x86、x64、Itanium等。
在某些实例中,可以针对一特定语言当地化设备驱动程序112。在这一实例中,获得设备驱动程序请求120可以填充请求语言字段308。请求语言字段308可以指示该设备驱动程序112应该支持哪种语言。例如,设备驱动程序112可以以人类可读语言提供提示、标签或者对话框中的其他文本。于是,请求语言字段308可以指示英语、西班牙语、法语、德语或任何其他人类可读语言。
如以上建议地,设备驱动程序112的一些实例没有被当地化。因此,可以将请求语言字段308看作是当获得设备驱动程序请求120正请求非本地化设备驱动程序112时不做填充的可选项字段。请求语言字段308的可选项特性由图3中框308的虚线所表达。另外,注意到在将请求语言字段308特征化为可选项时,此处的描述并不解释为陈述此处所示的其他元素在所有实现中都是必须的或强制的。
在对获得设备驱动程序请求120的以上字段302-306的说明和描述中,应该理解获得设备驱动程序请求120或其等效请求的实现可以包括图3所示字段之外的其他字段。图3所示的说明的可扩展特性由图3所示的省略号传达。
获得设备驱动程序请求120的一个基于XML的示例性实现如下表示:
<dds:GetDeviceDriver>
   <dds:DeviceIdentifier>xs:anyURI</dds:DeviceIdentifier>
   <dds:OSIdentifier>xs:anyURI</dds:OSIdentifier>
   <dds:RequestedArchitecture>xs:string</dds:RequestedArchitecture>
   <dds:RequestedLanguage>xs:string</dds:RequestedLanguage>
   ...
</dds:GetDeviceDriver>
在已结合图3描述获得设备驱动程序请求120之后,讨论转向在图4中更为详尽地示出的设备驱动程序包响应130。
图4示出了设备驱动程序包响应130的示例性内容,该响应130可以作为获得设备驱动程序请求120的响应提供。如图4所示,设备驱动程序包响应130可以包括组成设备驱动程序112的一个或多个字段402。图4为了方便说明示出了一个代表性文件402,但这不是对可能实现的限制。一般而言,设备驱动程序112可以包含任何数量的文件402。
对于各自的设备驱动程序文件402而言,设备驱动程序包响应130可以包含提供文件402的相对路径名的字段404。对于每个文件402和对应路径名404,设备驱动程序包响应128可以填充字段406或408之一。字段406可以包含例如在Base64表示下编码的设备驱动程序112的数据。在各实现中,字段406可以使用消息传输优化机制(MTOM)或类似方法编码。字段408可以包括URL,从中可以使用例如HTTP GET(获得)命令取出设备驱动程序文件。设备驱动程序包响应130也可以填充安装信息字段410。安装信息字段410可以包含例如由给定操作系统供应商提供的任何信息,以便于在给定操作系统下载入或安装供执行的设备驱动程序112。于是,安装信息字段410的内容可专用于特定的操作系统,并且可以不在所有的设备驱动程序包响应130的实例中被填充。于是,安装信息字段410的可任选特性就在图4中由框410的虚线传达。
响应130的一个基于XML的示例性实现如下表示:
<dds:DeviceDriverPackage>
 <dds:Files>
   [<dds:File Name=xs:string>
     [
        <dds:FileURL>xs:anyURI</dds:FileURL>
       [
        <dds:FileData>xs:base64Binary</dds:FileData>
     ]
   </dds:File>]+
 </dds:Files>
 [<dds:InstalationInfo>
   ...
 </dds:InstalationInfo>]?
...
</dds:DeviceDriverPackage>
在对设备驱动程序包响应130的以上字段402-410的说明和描述中,应该理解设备驱动程序包响应130或其等效结构的实现可以包括图4所示字段之外的其他字段。图4所示的说明的可扩展特性由图4所示的省略号传达。
过程流程和协议
在结合图2-4描述了数据结构和相关模式之后,讨论现转到可以结合提供用于设备驱动程序下载服务执行的各过程流程和相关协议的描述。结合图5和6描述了这些过程流程。仅为了方便,结合操作环境100的某些组件描述图5和6。然而,注意图5和6中示出的过程流程可以结合其他组件实现而不背离本文描述的范围和精神。
图5示出了用于请求设备驱动程序信息的位置的过程流程500。为了便于讨论,过程流程500在此结合图1所示的客户102描述。然而,应理解该过程流程500可以在除客户102或操作环境100中所示其他组件以外的设备或组件上实现而不背离本文所述的精神和范围。
更为详细地转向过程流程500,框502请求针对给定设备的设备元数据。而在一个可能实现中,图1提供了一个示例性设备114的示例,而图2示出了示例性的元数据118。回想该设备114可以存储其元数据118,并且可以在请求时提供这一元数据118。
框504响应于框502中所示的请求接收设备元数据118。回想该设备元数据可以指定从中可获取设备驱动程序的至少一个端点。
框506请求来自在设备元数据118中指定的第一端点的设备驱动程序(例如,设备驱动程序112)。框508估计在框506向其请求设备驱动程序的端点是否能够提供该设备驱动程序。例如,框508可以检查接收自该端点的响应以确定框506中所作请求的状态。
从框508,如果当前端点已经提供请求的设备驱动程序,则该过程流程500沿着是分支510至框512,其中该设备驱动程序在例如计算机可读介质106中安装。
返回框508,如果当前端点不包含或者不能提供请求的设备驱动程序,该过程流程就沿着否分支到达框516。框516确定在框504中接收的元数据是否提供了可从中取得设备驱动程序文件的更多端点。
从框516,如果元数据指定可从中请求设备驱动程序的更多端点,则过程流程500沿着是分支518到达框520。在框520,将设备元数据中指定的下一个端点选择为当前端点。过程流程500随后返回框506以请求来自这一新当前端点的设备驱动程序。过程流程500随后重复上述估计框508。
从框516,如果元数据指定没有可从中请求设备驱动程序的更多端点,则过程流程500沿着否分支522到达框524。如果过程流程500到达框524,则它无法提供用于该设备的设备驱动程序。框524报告一适当的出错消息。
在提供了过程流程500的以上描述之后,注意到由该设备(例如,设备102)提供的元数据可以指定为了该设备驱动程序询问各端点的顺序。此外,元数据可以指定要询问哪些端点。
在描述了用于请求新的或更新的设备驱动程序的过程流程500之后,现结合图6描述用于响应这一请求的过程。
图6示出了用于响应对设备驱动程序的请求的过程流程600。为了便于讨论,过程流程600在此结合图1所示的驱动程序下载服务120描述。在一些实现中,驱动程序下载服务122的实例可以在设备元数据中指定的端点处提供。驱动程序下载服务122可以响应由例如图5所示的过程流程500提供的对设备驱动程序的请求。然而,应理解该过程流程600可以在除驱动程序下载服务122或操作环境100中所示其他组件以外的设备或组件上实现而不背离本文所述的精神和范围。更为概括地,应理解过程流程600可以由设备元数据中指定的任何端点执行以服务针对设备驱动程序的请求。设备元数据118和相关端点204、206的非限制性示例在图2中示出。
更为详细地转向过程流程602,框602接收针对给定设备的驱动程序的请求。如上所述,图1提供了示例性设备114、示例性设备驱动程序112、以及示例性获得设备驱动程序请求120。
框604确定给定端点处是否有请求的设备驱动程序可用。如果给定端点不能提供请求的设备驱动程序,过程流程600就沿着否分支606到达框608。框608报告给定端点不能提供请求的设备驱动程序。在框608中提供的响应可以输入到图5所示的判定框508,在该判定框中估计给定端点是否能提供设备驱动程序。
在框608之后过程流程600返回框602以等待指向该给定端点的设备驱动程序的下一个请求。
返回框604,如果请求的设备驱动程序可用,则过程流程600沿着是分支610到达框612。框612获取请求的设备驱动程序,或者从中可取得设备驱动程序文件的位置。
在过程流程600的一些实现中,框614可以从在框612中指定的位置取得并载入实际的设备驱动程序文件。实际的设备驱动程序文件随后可以被载入对框602中所接收请求的响应主体中。在其他实例中,对请求的响应可以包括提供从中可取得设备驱动程序文件的位置的指针或引用。于是,可以将框614看作是自然的可选项,正如图6中框614的虚线所传达的。
框616提供对在框602中接收到的请求的响应。图1提供了由驱动程序下载服务120发送给客户102的示例性设备驱动程序包响应128。响应的不同实例可以包括设备驱动程序文件本身,或者提供从中可取得设备驱动程序文件的位置的指针或引用。
结论
虽然已经用结构特征和/或方法动作指定的语言描述了该系统和方法,但是应该理解在所附权利要求中定义的该系统和方法不必限于所述的特定特征或动作。相反地,指定特征和动作作为实现所要求保护的系统和方法的示例性形式而公开。
此外,考虑本文中描述并示例的某些流程图,注意到其中描绘的过程和子过程可以按所示顺序之外的其他顺序执行而不背离本文所述的精神和范围。

Claims (20)

1.一种系统,包括:
至少一个客户,所述至少一个客户包括驱动程序请求组件,所述驱动程序请求组件适合于将第一请求发送给一设备以请求从中取得所述设备的驱动程序的至少一个端点,并将对所述设备驱动程序的第二请求发送给所述端点;以及
至少一个驱动程序下载服务,用于接收所述第二请求并用于提供对所述第二请求的响应。
2.如权利要求1所述的系统,其特征在于,所述驱动程序请求组件适合于在所述第二请求内包括指示为其请求所述驱动程序位置的所述设备的设备标识符(ID),指示为其请求所述驱动程序的操作系统的操作系统ID,以及指示为其请求驱动程序的处理器体系结构类型的体系结构ID中的至少一个。
3.如权利要求1所述的系统,其特征在于,所述驱动程序请求组件适合于在所述第二请求内包括指示受所述驱动程序支持的人类可读语言的被请求的语言参数。
4.如权利要求1所述的系统,其特征在于,所述驱动程序请求组件适合于从所述响应中提取包含所述设备驱动程序的至少一个文件,并在所述客户上安装所述设备驱动程序。
5.如权利要求1所述的系统,其特征在于,所述驱动程序请求组件适合于从所述响应中提取包含所述设备驱动程序的位置,从所述位置访问包含所述设备驱动程序的至少一个文件,并在所述客户上安装所述设备驱动程序。
6.如权利要求1所述的系统,其特征在于,还包括所述设备,并且其中所述设备包括指定可从中请求所述设备驱动程序的至少一个端点的元数据,并且其中所述设备适合于响应所述第一请求将所述元数据提供给所述客户。
7.如权利要求1所述的系统,其特征在于,所述驱动程序下载服务包括适合于接收所述第二请求并提供对所述第二请求的所述响应的驱动程序下载组件。
8.如权利要求1所述的系统,其特征在于,所述客户服务适合于参考从所述设备获取的元数据,其中所述元数据指定可从中请求所述设备驱动程序的至少一个端点。
9.如权利要求1所述的系统,其特征在于,所述客户适合于参考从所述设备获取的元数据,其中所述元数据指定可从中请求所述驱动程序的所述以下端点的至少一个:
设备端点;
与所述客户相关联的管理端点;以及
与所述设备的制造商相关联的制造商端点。
10.如权利要求1所述的系统,其特征在于,所述驱动程序下载服务适合于发送包括有关所述设备驱动程序的至少一个文件的响应。
11.如权利要求1所述的系统,其特征在于,所述驱动程序下载服务适合于发送包括从中可取得所述设备驱动程序的至少一个位置的响应。
12.如权利要求1所述的系统,其特征在于,所述驱动程序下载服务适合于发送包括与所述设备驱动程序相关的安装信息的响应。
13.一种至少部分可由基于计算机的系统执行的方法,所述方法包括:
请求来自设备的且指定从中可请求所述设备驱动程序的至少一个端点的元数据;以及
请求来自在所述元数据中指定的至少一个所述端点的所述设备驱动程序。
14.如权利要求13所述的方法,其特征在于,还包括指定针对所述驱动程序的操作系统、处理器体系结构和设备标识符中的至少一个。
15.如权利要求13所述的方法,其特征在于,还包括指定用于所述驱动程序的被请求的语言。
16.一种至少部分实现如权利要求13所述方法的模式。
17.一种至少部分可由基于计算机的系统执行的方法,所述方法包括:
接收对设备驱动程序的请求;以及
发送对所述请求的响应。
18.如权利要求17所述的方法,其特征在于,所述方法由在所述设备提供的元数据中指定的至少一个端点执行,其中所述元数据指定从中可请求所述驱动程序的所述以下位置中的至少一个:
所述设备;
与所述客户相关联的管理端点;以及
与所述设备的制造商相关联的制造商端点。
19.一种至少部分实现如权利要求17所述方法的模式。
20.如权利要求17所述的方法,其特征在于,发送响应包括发送包含以下之一的响应:
指示所述设备驱动程序不可用的消息;
用于所述设备驱动程序的至少一个文件;或者
从中可取得用于所述设备驱动程序的至少一个文件的位置。
CNA2007800037748A 2006-01-30 2007-01-03 用于设备驱动程序的下载服务 Pending CN101375269A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/275,806 2006-01-30
US11/275,806 US20070180445A1 (en) 2006-01-30 2006-01-30 Download Service For Device Drivers

Publications (1)

Publication Number Publication Date
CN101375269A true CN101375269A (zh) 2009-02-25

Family

ID=38323655

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800037748A Pending CN101375269A (zh) 2006-01-30 2007-01-03 用于设备驱动程序的下载服务

Country Status (8)

Country Link
US (1) US20070180445A1 (zh)
KR (1) KR20080098004A (zh)
CN (1) CN101375269A (zh)
AU (1) AU2007210261A1 (zh)
BR (1) BRPI0706294A2 (zh)
CA (1) CA2633688A1 (zh)
NO (1) NO20082944L (zh)
WO (1) WO2007089385A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
US7925875B2 (en) * 2006-12-31 2011-04-12 Sandisk Corporation Systems and methods for identifying and booting a computer architecture
US20080162916A1 (en) * 2006-12-31 2008-07-03 Sandisk Corp. Portable Multi-Platform Booting
CN101382894B (zh) * 2007-09-05 2013-09-04 北京软通科技有限责任公司 下载计算机硬件设备驱动程序的方法、装置及系统
US8176499B2 (en) * 2008-05-30 2012-05-08 Microsoft Corporation Defining, distributing and presenting device experiences
US9069908B2 (en) * 2009-03-16 2015-06-30 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US9110755B2 (en) 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets
US8978027B2 (en) * 2012-11-08 2015-03-10 Nvidia Corporation Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor
US8949815B2 (en) * 2013-05-31 2015-02-03 Microsoft Corporation Driver installation for targeted and non-present devices
CN104750706B (zh) * 2013-12-26 2019-06-04 北京猎豹移动科技有限公司 驱动程序信息的提供方法、装置和系统
CN105204894B (zh) * 2015-08-28 2019-07-23 小米科技有限责任公司 安装智能设备的插件的方法和装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
JP3201319B2 (ja) * 1997-11-01 2001-08-20 日本電気株式会社 ネットワークに接続可能な電子機器
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6473854B1 (en) * 1999-10-07 2002-10-29 Micron Technology, Inc. Method for automatically retrieving and installing device drivers across a network
US6728787B1 (en) * 2000-03-31 2004-04-27 Mitsubishi Electric Research Labs, Inc System and method for locating and installing device drivers for peripheral devices
KR20020063390A (ko) * 2001-01-29 2002-08-03 엘지이노텍 주식회사 드라이버 프로그램의 자동 업데이트 방법
KR100671153B1 (ko) * 2001-04-25 2007-01-17 엘지전자 주식회사 디바이스 드라이버 설치방법
US20020194583A1 (en) * 2001-04-27 2002-12-19 Masayuki Kitagawa System and method for automatically transferring data to a host
KR100444996B1 (ko) * 2002-02-08 2004-08-21 삼성전자주식회사 인터넷을 통한 디바이스 드라이버 자동 설치 및 유지 보수방법 및 그 시스템
US20030195951A1 (en) * 2002-04-12 2003-10-16 Wittel Walter I. Method and system to dynamically detect, download and install drivers from an online service
US20040123305A1 (en) * 2002-12-14 2004-06-24 Samsung Electronics Co., Ltd. Method, apparatus, and computer readable medium for installing a device driver
US20050160157A1 (en) * 2004-01-15 2005-07-21 Collier Dan L. System and method for automatic device driver identification and installation
KR101144871B1 (ko) * 2004-03-17 2012-05-14 삼성전자주식회사 원격제어 장치, 원격제어방법 및 상기 방법을 기록한기록매체
US7613862B2 (en) * 2004-08-10 2009-11-03 Intel Corporation Embedded driver for bus-connected device

Also Published As

Publication number Publication date
US20070180445A1 (en) 2007-08-02
WO2007089385A1 (en) 2007-08-09
BRPI0706294A2 (pt) 2011-03-29
CA2633688A1 (en) 2007-08-09
KR20080098004A (ko) 2008-11-06
NO20082944L (no) 2008-07-29
AU2007210261A1 (en) 2007-08-09

Similar Documents

Publication Publication Date Title
CN101375269A (zh) 用于设备驱动程序的下载服务
US6606653B1 (en) Updating of embedded links in World Wide Web source pages to have the new URLs of their linked target Web pages after such target Web pages have been moved
EP2021937B1 (en) Techniques to perform gradual upgrades
US7174534B2 (en) Efficient system and method for running and analyzing multi-channel, multi-modal applications
US7415715B2 (en) Transaction execution system interface and enterprise system architecture thereof
US20110154231A1 (en) User Productivity On-Demand Services
Zhang et al. XML-based advanced UDDI search mechanism for B2B integration
CN101924798B (zh) 一种基于文件类型的Android构件透明加载方法及系统
US20030217044A1 (en) Method and apparatus of automatic method signature adaptation for dynamic web service invocation
WO2006010536A1 (en) Method of communicating between web applications and local client application while maintaining remote user session
CN100461174C (zh) 用于动态地创建web服务的方法和系统
CN101933011B (zh) 简介远程用户接口的系统和方法
Tabor Microsoft. net XML web services
US20080163264A1 (en) Directory Service that Provides Information from a Plurality of Disparate Data Sources
US6751647B1 (en) Method and apparatus for automated data exchange between a user computer and a provider computer using improved object-oriented programming components
CN1766918A (zh) 用于资源目录管理的系统、方法和设备
Cisco Preface
Cisco Read Me First for Campus Bundle - Maintenance Release (AIX)
US20030154101A1 (en) System, methods, and medium for facilitating providing a quote
Evans et al. Strategies for content migration on the World Wide Web
Muller How the Internet is breaking down barriers to EDI
US20040260817A1 (en) Facilitating access to a resource of an on-line service
Gillmann et al. Cooking the Web-ERP: A practical recipe to stir-up monolithic Enterprise information systems using DOC-and XML-standards
Christodoulou Thin Client Technology in Construction Management
Wessler et al. Overview of Features, Editions, and Releases

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090225