适用于设备资源的基于身份的分布式计算系统的制作方法

文档序号:6369881阅读:179来源:国知局
专利名称:适用于设备资源的基于身份的分布式计算系统的制作方法
技术领域
本发明主要涉及计算机系统,更具体的说,涉及计算机的资源。
当代的操作系统,例如,Microsoft Windows,给开发者提供与这类设备的界面应用,且与特殊设备的驱动需要和要求无关。例如,采用MicrosoftWindows操作系统,在应用程序通过操作系统能够与打印机驱动相互通讯之后,用户或设备就告诉操作系统已连接了那一台(些)打印机。因此,要完成的打印,应用程序一般只需要处理一些由操作系统所提供的标准打印功能即可。这类提取的巨大利益是不可理解的,例如,这类提取能够使众多的软件程序中的任何一个与众多的打印机/或其他设备交互作用,而程序不需要进一步了解(也不需要支持)有关打印机的细节。
微软公司的.NET技术提供了与用户或公司数据有关的稍微类似于抽象方法。一般来说,采用了.NET技术,对任意设备的任何.NET兼容程序能通过基于集中图解的服务与用户的数据相互交互。因为图解的方法,使程序就不需要对有关数据细节的特别了解,例如,它可以根据一个或多个的图解,采用适当的文件格式来存储,而不是只需要能够处理(读和写)数据格式。
采用了.NET技术,用户(或其他企业)统一控制访问集中维护的数据,例如,用户可以使用了.NET的收件箱服务,使得他和她的电子邮件数据可以集中存储(例如,在互联网或在企业内部的互联网),随后通过了.NET收件箱服务可在任何时间从任何与互联网或企业内部互联网相连接的设备中访问这些数据,并且具有能够与.NET收件箱服务交互的程序。用户的身份用于确保用户能与适当的数据相匹配。用户也可以可控制性的允许其他用户访问数据,例如,用户可以根据其他的身份,有选择性地产生一些与客户的商务往来信息,与朋友间的个人往来信息,等等。
于是,在.NET对用户,公司和其他企业提供了极大的基于数据利益的同时,集中服务和机制数据就不再特别关注用户是如何使用各种设备和这些设备的资源。例如,有时,个人电脑和笔记本电脑都能够相互间直接同步。在一定程度上,.NET技术是另一种保持这种数据同步的方法,尽管这是非直接的,也不需要特殊的和适用的同步程序。
然而,即使采用了.NET,用户也不能很容易地使用一种设备其访问另一种设备的资源,例如,将一种设备的计算能力,存储,带宽,输入和输出机制,程序和/或其他资源有效的应用于另一种设备上,即,对更强功能的设备进行更加复杂或更适合的任务。这就需要更普通,更兼容的方法对另一种设备来远程开发和显示各种计算设备的计算能力,实现交叉资源的使用。
计算资源可以包括,例如,设备的存储容量,带宽,处理功能(即,CPU和RAM的功能),输入机制和方法,编译和其他输出机制和方法(即,屏幕,打印机和音频输出),和程序。随后,设备即提取它的资源,该资源随后采用构成的方式可编程寻址其他设备(例如,采用这种方法所定义的远程资源,该资源包括在资源的较大范围内所包含的较少资源)。换句话说,对于在智能分布计算模式中所参与的设备来说,各个参与设备的各个方面都可以提取并且从其他设备中进行可编程寻址。统一的基于身份机制可发现设备的远程资源列表。一组一个或多个表格一贯讨论了设备的远程资源,以及统一地安全模式可以允许设备的拥有者去控制访问该资源和访问该范围的人。
采用本发明,提出了所讨论适用于大量实例背景所讨论的计算解决方法,包括一些由一个用户设备与一个或多个远程计算设备实时交互的实时背景,以及一些对用户行为进行透明和自动操作的预测背景。
从以下结合附图的详细讨论中将使其他优点变得更加清晰,附图包括
本发明可对多种其他通用或专用计算系统环境或配置进行操作。众所周知的计算系统环境,和/或适用于本发明使用的配置的实例包括,但并不限制于,个人计算机,服务计算机,掌上或膝上设备,桌上设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费电器,网路PC,小型计算机,大型计算机,包括任何上述系统或设备的分布式计算环境,等等。
本发明所讨论的主要内容是计算机可执行指令,例如,计算机可执行的可编程模块。一般说来,可编程模块包括例行程序,程序,目标,元件,数据结构,等等,可以用于执行特殊的任务或实现特殊抽象数据类型。本发明也可以在分布式计算环境中实现,在该环境中通过由通讯网络连接的远程处理设备来完成任务。在分布式计算环境中,可编程模块可以设置在包括存储器存储设备的本地和/或远程计算机存储媒介中。
参照

图1A,实现本发明所举例的系统包括计算机110形式的通用计算设备。计算机110的元件可以包括,但并不限制于,处理单元120,系统村村起130,和系统总线121,系统总线将包括系统存储器的各种系统元件与处理单元120相耦合。系统总线121可以是几种类型总线结构中的任意一种总线,这些总线可以包括存储器总线或存储器控制器,外围总线,和使用一种总线结构的局部总线。通过该实例,但并不限制于,这种结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,扩展ISA(EISA)总线,视频电子标准协会(VESA)局域总线,以及也称之为Mezzanine总线的外围器件互联(PCI)总线。值得注意的是,在计算机110中所显示的任何和所有的元件都可以通过标准的高速计算机网路相互连接,也包括那些分散在广泛地域的元件。例如,系统存储器130可以设置在不同于处理单元120的物理位置,但也可以根据构成的方式定义成局域的计算110。
计算机110一般包括多种计算机可读媒介。计算机可读媒介可以是任何计算机110可有效访问的媒介,并包括易失性或非易失性媒介,以及可拆卸或非拆卸的媒介。例如,但并不限制于,计算机可读媒介可以包括计算机存储媒介和通讯媒介。计算机存储媒介包括易失性和非易失性,可拆卸和非拆卸媒介,这些媒介可以采用存储诸如计算机可读指令,数据结构,程序模块或其他数据的信息的任何方法或技术来实现。计算机存储媒介包括,但并不限制于,RAM,ROM,EEPROM,闪存存储器或其他存储器技术,CD-ROM,数字视盘(DVD)或其他光盘存储,磁盘盒,磁带,磁盘存储或其它磁存储设备,或任何其它可以存储所要求信息和能够被计算机110访问的媒介。通讯媒介一般包括嵌入的计算机可读指令,数据结构,程序模块或在模块化数据信号(例如,载波或其他传输机制)中的其他数据,并且还包括任何信息传递的媒介。术语“模块化数据信号”是指具有一个或多个信号特征组或采用对信号中的信息进行编码的方式来改变的信号。例如,但并不限制,通讯媒介包括诸如有线网络或直接有线连接的有线媒介,和诸如声,RF红外和其它无线媒介的无线媒介。上述任何组合也应该包括在计算机可读媒介的范围内。
系统存储器130包括计算机存储媒介,它可以是易失性和非易失性存储器,例如,只读存储器(ROM)131和随即存取存储器(RAM)132。基本输入/输出系统133(BIOS)一般存储于ROM 131中,包含着基本的例行程序,它有助于在计算机110中各元件之间的信息传输,例如,在启动过程中。RAM 132一般包含着数据和/或程序模块,它可以被处理单元120即时访问和/或立即操作。例如,但并不限制于,图1A说明了操作系统134,应用程序135,其他程序模块136和程序数据137。
计算机110也可以包括其他可拆卸/非拆卸,易失性/非易失性的计算机存储媒介。仅仅是一个实例,图1A说明了硬盘驱动器141,它可以是非拆卸和非易失性的可读写磁媒介;磁盘驱动器151,它可以对可拆卸和非易失性的磁盘152进行读写;光盘驱动器155,它可以对可拆卸和非易失性(例如,CD ROM或其它光媒介)的光盘156进行读写。其他可以应用举例操作环境的可拆卸/非拆卸,易失性/非易失性的计算机存储媒介包括,但并不限制于,磁带盒,闪存卡,数字视盘,数字视频带,固体RAM,固体ROM,等等。硬盘驱动器141一般是通过非拆卸存储接口(例如,接口140)与系统总线121相连接,磁盘驱动器151和光盘驱动器155一般是通过可拆卸存储接口(例如,接口150)与系统总线121相连接。
上述所讨论的以及图1A所示的驱动器和它相关的计算机存储媒介提供了计算机可读指令,数据结构,程序模块和计算机110的其它数据的存储。例如,在图1A中,硬盘驱动器141说明了用于存储操作系统144,应用程序145,其它程序模块146以及程序数据147。值得注意的是,这些元件可以与操作系统134,应用程序135,其他程序模块136,以及程序数据137是相同的或者是不同的。操作系统134,应用程序135,其他程序模块136,以及程序数据137给出不同的数字是用于说明,此时,它们是不同的拷贝。用户可以通过输入设备,例如,写字板,或电子数字化仪164,麦克风163,键盘162以及定位仪161(通常称之为鼠标,轨道线圈或触摸板)向计算机20输入命令和信息。图1A中未显示的其它输入设备可以包括手柄,游戏板,碟形卫星天线,扫描仪,等等。各种输入设备经常都是通过用户输入接口160与处理单元120相连接,用户输入接口160与系统总线相耦合,但也可以通过其他接口和总线结构相连接,例如,并行接口,游戏接口或通用串行接口(USB)。监视器191或其他类型的显示设备也可以通过接口(例如,视频接口190)与系统总线121相连接。监视器191也可以与触摸屏等等集成在一起。值得注意的是,监视器和/或触摸屏物理耦合在安装计算设备110的外壳上,例如,在桌面类型的个人计算机。此外,诸如计算设备110的计算机也可以包括其它外围输出设备,例如,扬声器195和打印机196,输出设备可以通过外微接口194等来连接。
计算机110可以在使用逻辑连接着一个或多个远程计算机,例如,远程计算机180,的网络环境中操作。远程计算机180可以包括个人计算机,服务器,路由器,网络PC,等同的设备或其它通用的网络结点,并且一般包括许多或所有与计算机110有关的上述所讨论的元件,当然在图1A中只是说明了存储器存储设备180。在图1A中所说明的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这类网络环境在办公室里是很普遍的,企业内部的计算机网络,企业内的互联网和互联网。例如,在本发明中,计算机系统110可以包括移植数据的源机器,而远程计算机180可以包括目的机器。然而,值得注意的是,源和目的机器都不需要通过网络或者其它方式来连接,但是,通过任何媒介所移植的数据都能由源平台写入和由目的平台或两个平台读出。
但用于LAN网络环境时,计算机110通过网络接口或适配器170与网络相连接。但用于WAN网络环境时,计算机110一般包括调制解调器172或其他用于建立与WAN 173(例如,互联网)通讯的方式。调制解调器172可以是内置式或外置式,通过用户输入接口160或其他适用的机制与系统总线121相连接。在网络环境中,与计算机110或计算机部分有关的程序模块可以存储于远征存储器存储设备。例如,但并不限制于,图1A所说明的远程应用程序185驻留在存储器设备181。需要理解,所示的网络连接指示用于举例,也可以使用其他建立在计算机之间通讯连接的方式。
图1B说明了另一适用的操作环境(计算机设备188),在该环境中,至少可以部分实现本发明。正如图1A所示,图1B所示的操作环境只是适用于操作环境的一个其他实例,但并不试图建议任何对本发明使用或功能的限制。图1B所示的其它计算机设备188一般包括至少某种形式的计算机可读媒介。计算机可读媒介可以是任何计算设备188可访问的有效媒介(正如以上普遍定义的那样)。
图1B显示可计算设备188的功能元件,例如,手持(口袋式或桌面式)个人数字助理,它可以包括处理单元189,存储器190,显示器192,和键盘193(这可以是物理的或虚拟的键盘)。存储器190主要包括易失性存储器(例如,RAM)和非易失性存储器(例如,ROM,PCMCIA卡,等等)。操作系统194驻留在存储器190并在处理器189中执行,例如,微软公司出品的WindowsCE操作系统,或者其他操作系统。
将一个或多个应用程序195下载存储器190并在操作系统194中运行。应用程序的实例包括电子邮件程序,进度表程序,PIM(个人信息管理)程序,字处理程序,电子数据表程序互联网浏览程序,以及其它等等。手持个人计算机188也可以包括下载于存储器190中的通知管理196,它在处理器189上执行。通知管理196管理着通知的请求,例如,来自应用程序195。
手持个人计算机188具有电源197,它可以采用一个或多个电池。电源197还可以包括外部电源,它可以取代内置的电池或对内置电池的充电,例如,AC适配器或电源对接支架。
图1B所示的示范手持个人计算机188显示了三种外部通知机制,一个或多个发光二极管(LED)198和音频发生器199。这些设备可以在它们激发时直接与电源197相耦合,使它们在通知机制指令的过程种保持着导通,即使手持个人计算处理器189和其它元件可以关闭电源已节省电池功率。LED198最好保持着不确定的导通,直至用户产生操作。值得注意的是,对于今天的手持个人计算机电池来说,现代音频发生器199使用了太多功率,所以当系统开始休息或者在激活过程种的某些时段可以配置成关闭电源。
适用于设备资源的基于身份的分布式计算系统本发明主要提出了便于设备与其它设备的资源分配的系统和方法。本发明一般不涉及到设备如何使用其它设备的资源,在何时通讯,或者在设备之间如何通讯的。然而,本发明主要是更多的考虑构成设备能发现各个其它设备资源的方法,随后允许设备能共享它们之间的资源。尽管安全模式对本发明来说并不是所必需的,它可以是便于资源分布的一部分,安全模式提供了特殊的目的,至少确保了使用其它设备资源所要求的有效凭证。于是,本发明较佳地基于身份,在身份中,分布式的资源具有根据提供给设备的身份数据(例如,凭证)的相互关系。
一般而言,本发明提出了在用户设备之间的分布计算,其中,用户(或拥有者/管理着)是任何授权控制和/或使用设备的。然而,因为一般来说,设备间逐渐成为分解的,所讨论的方法和系统可以更适合于资源分布计算的讨论。例如,单一分布设备可以由许多资源所组成,但是可以像只有一个资源参与所提供的资源那样较少的共享(例如,只是它的非易失性存储)。尽管如上文中所使用的那样。术语“设备”和“资源”一般是指可以相互交换的,除了明确显示的地方,例如,使用另一设备或使用其它设备的资源来完成某些计算任务一般都视为相同的事情。同样,正如上文所使用的,带宽是设备的资源,即使带宽并不一定要与任何特殊设备一起来考虑。
正如图2所说明的,根据本发明一个方面构成了分布式计算环境200,它包括第一设备202(设备A,例如,图1A所示的计算机系统110)和第二设备204(设备B,例如图1B所示的计算机系统188),以及其它可能的设备(未显示)。在分布式计算环境200中参与的各个设备包括分布计算管理器204和214。一般,正如以下所讨论的,分布计算管理器204和214可以包括通过媒介(例如,无线FM),线-视线(例如,红外),卫星,直接连接,互联网或企业互联网等相互通讯的一些代码。当然,多种这类媒介都是有效的,并且分布计算管理器204和214可以选择一个或两个是指最好地来适应给定的环境。
分别计算管理器204和214的最初目的是相互定位。这样的定位可以是自动的,例如,使各个设备能偶然线其它设备发布它的有效性和/或选中其它设备的有效性,或另外可以根据来自连接另一设备的程序(或用户)的某些特殊请求进行操作。正如图2所说明的,分布计算管理器204和214各自分别包括安全机制206和216,它交换凭证207,217或者其它等等(例如,来自验证服务220),以确保当前正操作设备和接触设备(和/或设备自身)的用户在分别计算环境中时有效的,同样,如果需要,正在接触的设备也可以是有效的。值得注意的是,所使用的程序也是安全/访问控制的因素,例如,在一个设备上运行的第一程序可以具有使用另一设备资源或所有资源的权利,但另一程序就不可具有这样的权利,且不约束于或除了用户的识别和/或设备的识别。还值得注意的是,安全机制可以对每一个识别和每一个资源进行操作,例如,一个实体可以具有使用设备显示的权利,但没有使用它的存储的权利,同时,另一实体也可能够使用相同设备有效资源中的任何一个,包括它的存储。这是类似于.NET安全模式,在该模式中,服务提供了根据所请求的用户识别,定义的规则和适用于该规则的范围来访问用户数据的控制方法。这样,数据就可以被它的拥有者所访问,并可共享拥有者所确定的范围。在本发明中,取代了数据自身就是被访问的设备资源,从而使得用户识别,定义的规则和定义资源范围的规则范围都可以访问。
当然,本发明的安全机制是基于采用在.NET服务中的安全/访问控制的基础,正如在2001年10月22日申请的美国专利No.10/003,754“身份中心数据访问”和No.10/003,767“根据数据结构授权操作的请求实体”中所讨论的,这些专利受让于本申请,在此一并参考。为了能达到此目的,.NET服务中至少一个较小的子集在各个设备中运行,并期望能在环境200广告和分享计算资源。此外,局部内部兼容安全模式可以在这些设备中执行,使得即使在两个局部对等的设备可以与集中授权(例如,护照)服务220(图2)断开时能提供局部安全。
本发明并不限制于传输媒介,但提供分布资源服务可以直接寻址目标设备,或者通过互联网或企业的互联网,例如,通过在Web中的.NET服务的集中组。但通过互联网或企业互联网连接时,程序可以询问有关用户识别的任何设备的最后已知的计算资源有效性,即使在设备离线或者不可访问时。带宽也是个资源,并且可以影响设备资源是如何分享,例如,当个人计算机具有高速连接互联网时,它可以更有效地影响个人计算机的资源,但如果个人计算机不能在低速进行连接时,则使得其它设备可以具有高速连接。事实上,个人计算机可以要求影响其它设备的高速连接,在该高速连接中,其它设备会随后影响个人计算机的资源,即,设备交换资源,来提供更佳的用户经历。
根据本发明的一个方面,分别计算管理器204和214也都包括各自发现机制,208和218,它允许设备能发现另一特殊设备所共享资源/能力,即,当其它设备构成共享它的资源时。各个资源数据209和219采用格式化(例如,采用XML格式)并根据所定义的表格进行交换,正如以下所讨论的。正如图2所说明的,通过图表化数据209和219的交换,两个设备202和204构成了与在分布计算环境中的其它设备共享它们的资源(RA1-RAm和RB1-RBm)。然而,应该理解的是,在给定的环境中,特殊设备(例如,拆卸电话)可以只有一个资源的用户,而不是任何资源的提供者,或者相反可以只是一个提供者,而不是用户。
共享它资源的设备不需要直接与其它设备通讯资源数据,但是相反的是,例如,可以对将被发现的其它设备广告它的资源。例如,提供.NET服务(.NET设备),它可集中存储设备资源能力,从而在将数据发送至另一设备之前数据可以进行适当的格式化处理,例如,不向不能显示高精度图像的设备发送高精度的图像。类似的.NET资源服务,或扩展的.NET设备服务,都可以向其它设备提供广告信息。
下列表格阐述了几例可以用于(例如采用XML格式化的数据)来交换与用户设备有关的资源(存储和处理的功能)信息的表格,在这些实例中包括了工作和家庭个人计算机,以及蜂窝式电话


正如可以理解的那样,该表格最好是基于资源的,例如,多个设备可以表来列出各自的资源类型,从而能匹配具有分布资源有效使用的识别的基本概念,而与存在着资源的实际设备无关。当然,本发明并不限制于任何特殊的表格和/或格式,例如,表格可以基于设备,使得各个设备都可以对其它设备提供有效资源的列表,使得相同的信息都能知道。
正如图3所主要说明的那样,所提供的结构300便于设备能参与智能分布计算模式,在该模式中,提取了所参与设备的各个方面,并产生不同的设备可编程地址。通用插拔(UPnP)基础结构或类似结构都可以用于基础、下层的机制302,已发现这些资源。另外,各种计算设备的资源列表都可以缓存在某些已知的位置上,例如,工作目录的存储,可用于询问远程资源,即使设备只能通过某些中间件来访问,例如,防火墙或无线网络集线器。在发现机制的顶层是表格304,例如,与特殊类型的计算资源有关,与所披露的这些表格中各个表格有关,例如,正如.NET结构的表格一样。
值得注意的是,在UPnP提供适当的发现机制304的同时,这只是实际使用远程计算资源的处理的一部分。于是,UPnP和.NET技术的使用便于资源的共享,但不用于实际采用设备上的有效资源。相反,一旦了解了资源,就可以使用适用于特殊资源适当聚焦的协议。例如,UPnP,采用.NET IdentityHeader,EndpointHeader,以及RequestHeader SOAP表格,就可以很好的用于获得远程设备的视频屏幕的特性,然而,诸如PDP的协议也可以适用于在原始发现和设备之间产生握手之后传输视频数据。值得注意的是,该方法类似于现在.NET探讨数据服务的方法,例如,.NET提供了连接表示所有权(即,投递员)协议的电子结束点,但是,一旦该结束点连接上,则.NET就允许客户能使用现存的实时协议。适用于其它类型资源的其它协议也可以使用,例如,适用于存储的CIFS+,它可以较好的区分合用以及家用存储的两者背景,并且使能用户文件系统来继续扩展其它存储设备,而不要求用户来处理发送信函,指定空间,等等。总的来说,本发明提供了基于身份来发现这些对使用有效的其它资源,但并不因此而需要直接处理它们的使用。
图6是说明本发明某些主要方面的举例流程图,在步骤600开始,它表示接受到使用共享资源的请求。该请求一般是,例如,请求资源的列表,这是用户具有所配置的参与的设备的有效性,或可以是对特殊资源的请求,例如,根据某些广告。对于该实例的目的来说,该请求可以处理成对一个特殊资源的请求。
步骤602表示可凭证的模拟,例如,由微软.NET护照授权服务所提供。该请求可以包括凭证,或该凭证可以分别交换,例如,在步骤600的部分之前或者在步骤600之后。如果在步骤602是无效的,则步骤602转到步骤604,这表示拒绝了请求。值得注意的是,根据所给定的环境,在没有适当凭证的条件是可以忽律的,而不用特殊的拒绝。
如果是有效的,就执行步骤606,并表示确定有效的请求资源的数量。例如,诸如存储的资源可以限制,因为它只具有有限的自由空间,其次,设备可以配置成使它的存储空间的一部分成为有效共享的,保留它的其余部分。诸如处理周期的资源可以只对处理器的范围有效,而不是使用它,即使可以作出进一步的限制,使得其它器件也只能发生在最大数量的未使用周期。任何资源都可以具有与它有关的终止数值,该数值可以进一步根据它使用来确定,例如,可以共享的存储每次请求不大于1小时,并且只要在每两分钟内没有检测到文件系统的请求,该请求就会终止。这样,设备可以构成将它的资源在它拥有者/管理员所控制的范围内共享。
值得注意的是,资源的访问可以是动态的,例如,可以共享未使用的处理周期,然而,CPU的使用是波动的,并且所请求的客户设备可以与其它设备一起享有优先权和/或将设备处理成分享CPU。例如,在设备拥有者不使用设备时,客户用户可以只耗用资源中的可控制部分(例如,带宽或处理功率)。COU和带宽都是资源的例子,它可以根据时间约束条件(例如,每秒周期或每秒位)来确定时间的,而不同于非基于时间的资源,例如磁盘或存储器的使用。因此,基于时间资源的时间确定机制一般都根本不同于非基于时间的资源。值得注意的是,电话厅的位置将使许多情况对这类客户非常有利。诸如显示监视器的资源就可以根据它是否正在使用的情况来完全有效地分享或者就根本不能分享。于是,尽管在图6中没有表示,但是在没有所请求的有效资源用于分享时,步骤606也可以拒绝(或者忽略,只要适当)请求。步骤608表示了对请求事务返回响应,较佳的是返回基于表格的响应,这表格化的响应可以对所请求的事务提供资源容量的数据。
步骤610表示允许所请求的资源被分享,并且包括例如,在所请求设备和分享设备之间数据的交换,使得该分享对所请求的设备执行某些相应的任务。步骤612测试资源是否已经用好,即,停止使用或者是不再有效。值得注意的是,为了简化,只显示图6中的一个环路,然而,应该理解的是,该操作是由事件来驱动的、此外,步骤(例如步骤606)可以包括在该环路中/用于触发事件,例如,资源的使用可以动态检测,已对所指定的请求确认何时结束。值得注意的是,当请求实体通知设备该资源不再需要时,就可以直接停止使用资源。
步骤614表示通知所请求的设备该资源对使用不再有效。步骤616表示禁止资源的使用,以至于,例如,一旦停止使用,所请求的设备将会产生新的请求,子要它要分享资源。
图4和图5提供了本发明许多可能使用的一些实例。从图4和图5的实例中可以理解,支持网络边界设备或者应用程序的集成计算代理可以内部网络的用户产生较好的用户经验。
在图4所示的第一实例中,小的拆卸设备400(例如,拆卸电话)要连接打印机打印,然而,小的设备400并不具有合适的打印机驱动 程序。这时因为拆卸设备400不具有足够的存储器来安装和保持打印机402所需打印机驱动程序,和/或没有容易的方法来安装所需的打印机驱动程序,和/或其它原因。值得注意的是,这是实际的情况,并且一种建议的解决方法是将XHTML-PRINT作为简化PDL(页面描述语言)从拆卸设备400,例如,通过某些网络连接(由图4中的虚线所示)发送至打印机402。尽管XHTML-PRINT可适用于一定的范围,但是本解决方法还存在着一些缺陷,例如,XHTML-PRINT不是WYSIWYG,不能控制连线的中断,以及一般只能提供较差的用户经验。
然而,如果采用本发明,拆卸设备400首先动态发现配置合适打印机驱动程序406的个人计算机404,(以及拆卸设备的用户可以授权使用该计算机),而拆卸设备400通过个人计算机404向打印机驱动程序提供打印数据,它将依次使用PCL,附言或光栅化的方法来创建WYSIWYG。正如以上所提及的,本发明提供了发现的机制,并随后拆卸设备400可以任意方法与个人计算机404相通讯,例如,通过具有非常高重现精度(相对于XHTML-PRINT)的轻量级PDL。通过对个人计算机404中较快的处理器和合适的打印机驱动程序406的影响,其结果是非常快的呈现出高质量的输出。
图5验证了第二实例,它主要提出了当服务器502(例如,ASP.NET的服务器)远程执行管理代码操作PDA(个人数字助理)500时提供了改善的用户经验。完成该经验的一个方法是将PDA与运行管理代码的服务器相连接,(例如,通过影响拆卸控制来支持ASP.NET),其结果采用HTML来传输,正如图5中的虚线所示。服务器502动态以比例将HTML分成设备500的适当屏幕尺寸,而ISV不能串讲适用于各个设备500的特殊用途的代码。然而,这就需要服务器500具有许多循环来更新和刷新屏幕,并且主要还提供较高层次的用户经验。
本发明所完成的提供改良的解决方法是采用PDA来动态发现与用户身份有关的个人计算504,该个人计算机可以是适用于多个计算资源的代理,正如图5所主要说明的那样。在该事件中,PDA发布HTML请求,它适用于提供代理个人计算机504的远程页面。个人计算机504截取请求并启动与远程服务器502有关的部分,以便于卸下UI呈现的管理代码,例如,采用WSDL作为协议发送至服务器502。一般来说,从代理个人计算机504到服务器502的带宽将小于从PDA设备500到代理个人计算机504的带宽,在来往服务器502较少连接上所传输的小部分数据使得在显示PDA500时有更快的用户接口响应,从而提供了改善的用户经验。当然,两种带宽可以首先用于仿真,以确保代理解决方法是较佳的一个方法。
此外,值得注意的是,如果采用服务器能够起影响的局部运行的控制来配置PDA 500,就可以提供更好的经验。例如,ASP.NET自动影响任何在基于Windows操作系统的PDA上局部运行的局部控制(例如,数据拾取的控制)。这就产生服务器502和/或代理504的循环越少,则最终屏幕的更新/刷新就越少。
应该理解的是,有许多其它实例,这些实例包括环绕身份的计算资源,而不是环绕包含资源的那些特殊设备。该资源的表格和服务的结构并不限制于简单讨论资源,还包括了有利于资源一起工作的辅助元件,这些可以适用于以下两种情况,即,一种是实时情况,在该情况中,用户与远程计算设备实时交互,而另一种是确定时间和预测的情况。预测情况的实例可以包括存储负载平衡机制,它在家庭网关中偶然运行,以确定一个计算设备的空闲存储空间不能运行,而另一个驱动起具有大量的空间。
于是,丰富表格可以提供在讨论资源本身之外的数据,例如确定时间的方法,在特殊时间或固定的间隔中的有效权机制,以及表示数据如何处理在实时和预测任务,或多个任务之间可能的内容。表格可以提供成本的概念,例如,如果两个连接都是有效地连接互联网,它就可以有效的识别用户能够对一个没有限制的访问所放置的一个价格,但另一个价格适用于通过不同机制传输的数据数量,以得到较好的选择。
通过注册系统的复制和分享可以用于理解用户是如何与它们的设备进行交互的,以及获得用户如何操作的基本观念,而不只是分别设置致谢设备。该数据有助于了解许多设备,并对所考虑的这类设备提供自动的方法。预测油花的方法可以根据所检测的使用进行存储和交换,例如,如果系统知道用户在每周五里剋工作之前要将部分信息手动下载手持计算机,则系统可以在设备空闲的时间就开始下载,作为“同步”出现的范例。终端的用户选择/设置/性能也是分享环境中的有效信息,例如,某些用户所需要的内容或事件所需要的性能则是其他用户所不需要的甚至是讨厌的。提供保持这些数据,终端的用户具有控制他们经验的权利。因此,在典型的环境中,至少要有一个使用协议/表格来执行系统管理的丰富的客户,其中“系统”称之为与身份有关的整集。对于预测这样的操作来说,可以使用表格的算法和方法。
应该理解的是,提供抽象设备资源和环绕身份而设置的设备可以使能许多有效的背景。已经提供了许多实例,然而,不应该考虑列表,除非或者有任何方面的限制,否则只是用于说明本发明的许多利益和优点中的一部分。正如以上所提及的,为了能更好的显示,具备小的计算机屏幕的设备可以影响连接着个人计算机而未使用的计算机监测器,使用代理的资源就便于在他自己的显示器上更好的显示(图5)或者,通过具有正确驱动的个人计算机来连接打印机,则可以在不需要打印机驱动的条件在打印机上打印。
在非常的功率的设备也可以看到其它实例,例如,在拆卸电还中,通过使用个人计算机中的存储器和CPU来进行复杂的计算。存储数据可以是自动的和透明的,当第一硬驱动满了,则可以从第一硬驱动拆卸到第二硬驱动,包括,例如,从记录着视频节目并需要删除旧的显示内容来产生更多的新鲜记录的个人数字视频记录仪。本发明取代了将这些显示内容拆卸到其它存储设备中,而是删除这些内容。便携式音频播放仪需要不能播放任意类型的物理媒介,但是可以取代从个人计算接受和缓存音频流并从存储器中播放音频。
其它实例包括允许用户能够容易地从与他们存储无关的任何设备中访问他们的文件;例如,在至具备小型个人计算机的路途上,要能容易地打开存储在家庭个人计算机或工作的网络计算机上的文件,(而与集中的.NET数据存储无关)。用户可以看到在各种设备中所有未使用的存储空间,包括在公众网络上的各种公用电话亭。连接着合适设备的大屏幕TV可以用于观看存储于个人计算机文件夹中的图片,运行投影仪来观看存储于个人计算机中的家庭影片或影片的预告,等等。
图7提供了使用四个互联计算机702-705来运行的实现方案700。该方案700包括在计算系统704中的命令壳710,以及应用程序712(或者类似功能代码),在计算系统702中的键盘资源714,在计算系统703中的存储器(例如,磁盘)716,以及在计算系统705中的显示器718。于是在个实例中,资源是分布是,使得输入资源在计算702,存储资源在计算703,输出资源在计算704。计算机704起着对实现方案700的计算调配中心权利的作用。尽管资源在不同计算系统,但是根据本发明可以从单一功能的系统对基础系统来访问这些资源。
层资源710条用应用程序712,以及也通过端口724,726和728连接着其它设备资源,在图7中采用概念来表示一个端口资源,尽管可以提供分开的输入和输出端口。端口基本包括了结构的队列,它可以通过对端口的控制来写(输出)或读(输入)。端口是可拆卸的,数据是不会掉失的,安全模式可以与端口有关,从而可以不采用任何安全模式,除非所期望的实体会看到适用于它的所期望的数据。
用于实现方案700中的层711是基于称之为“xSpresso“的编程语言,正如在2002年5月10提请的美国临时专利申请No.60/379,864所讨论的,在此一并作为参考。一般来说,xSpresso是一种编程语言,并且它可以实时的在异步系统元件中分出控制和数据流。在其它事务中,xSpresso表现了编程或服务的协同尺度,包括次序和事件,它都可以可编程核对。语言可以可编程描述来自客户的基于目标的语言(如,XML)的结构框架形式的过程。
在图7所示的实例中,标示1-4和6-9的数字箭头表示了在端口724,726和728与壳710之间的各种通讯,以将在存储器716中的文件内容显示在显示器718上的实例,例如,类似于众所周知的“类型”功能。在图7的实例中,键盘资源714的用户通过在键盘(标示位(1)的箭头)上打入字符“类型”来初始化操作。壳710通过端口724接受到并且将数据发送至端口728,用于在屏幕718(标示为(2)的箭头)上显示,即,给出用户已经输入了的回音和/或提示存储用户所希望显示内容的文件的文件名。在图7中,标示为(3)的箭头标示用户在文件名中输入的内容,例如,对应于XML文件,它也可以来给出回音(没有分开标示)。
采用文件名,壳710随后向端口726(由标示为(4)的箭头来表示)写入数据,该端口对应于存储(例如,磁盘)资源716,它可以产生存储文件系统的读请求。同时,壳710调用应用程序712(标示为(5)的宽箭头来表示),以接受和输出所读到的数据。响应之后,存储资源716开始通过端口726向应用程序712输出数据,这就依次将它输出到显示资源718的端口728,正如标示为(6) 和标示为(7)的箭头所表示的。标示为(8)和(9)的箭头表示了正在以类似方式传输的数据。标示为(10)的箭头表示了正在返回到壳710的状态(即,成功的)代码。
为了保持着本发明,可以将存储,输入和输出设置在不同的系统之中,而在实现中没有任何变化。所遗留的互用性可以由共同语言运行时间(CLR)的分类来提供的,共同语言运行时间(CLR)的分类表示了共同遗留元件(例如,键盘,控制台和存储)。在局域和透明分布实现方案中提供了系统的分散,正如在对同时发生和信息经过时所作的专门处理。
从上述的详细讨论中可以看到,提供了基于身份概念的设备资源分布计算的方法和系统。该方法和系统采用为用户提供众多利益以及主要改善用户的计算经验从和设备中提取了计算机的资源。该方法和系统是基于表格的,并且是壳扩展的和高度灵活的。
在本发明容许对附图所显示说明以及以上已经详细讨论的一些结构作出改进和变更。应该理解的是,并不试图将本发明限制于上述披露的指定实行,本发明覆盖在本发明精神和范围之内的所有改进,变更的结构,以及其等效结构。
权利要求
1.在计算环境中,一种方法包括在第一计算设备中,发现第二计算设备;在第一设备中,获得与第二设备相关的数据,该数据可以包括根据第一设备所理解的表格格式化的第二设备的资源信息;以及,第一设备截取访问第二设备资源的数据。
2.如权利要求1所述的方法,其特征在于,还包括从第一设备向第二设备通讯使用资源的请求。
3.如权利要求1所述的方法,其特征在于,还包括从第一设备向第二设备通讯身份信息。
4.如权利要求3所述的方法,其特征在于,身份信息对应于凭证。
5.如权利要求4所述的方法,其特征在于,凭证是由授权服务所提供的。
6.具有计算机可执行指令的计算机可读媒介执行一种方法,其特征在于,该方法包括在第一计算设备中,有关至少一种可有效使用的其它设备资源的位置信息,所在位置的信息是基于与第一计算设备的有关身份的信息;从该信息中选择第二设备的资源;访问第二设备的资源。
7.在计算环境中,一种系统包括第一计算设备,它与至少一个身份有关,第一设备包括第一资源并构成了提供由至少一种与身份有关的其它设备来访问第一资源,第一计算设备根据与至少一个身份有关的资源表格提供有关第一资源的信息;第二设备,第二设备构成了对第一资源的请求访问;以及,第二设备执行计算任务,该任务包括使用第一设备的第一资源来执行至少部分任务。
8.如权利要求7所述系统,其特征在于,第一资源包括存储器。
9.如权利要求7所述系统,其特征在于,第一资源包括从第一设备连接至少一个其它计算设备的带宽。
10.如权利要求7所述系统,其特征在于,第一资源包括处理器的处理周期。
11.如权利要求7所述系统,其特征在于,第一资源包括输入方法。
12.如权利要求7所述系统,其特征在于,第一资源包括输出方法。
13.如权利要求7所述系统,还包括连接着第一计算设备的第三计算设备,其中,第二设备访问第一资源来执行对第三计算设备的操作。
14.如权利要求7所述系统,其中,第三计算设备包括打印机,以及,第一资源对应于在第一计算设备上的打印机驱动器。
15.如权利要求7所述系统,其中,第三计算设备包括服务器,并且,第一计算设备作为服务器的代理作用于第二计算设备。
16.如权利要求15所述系统,其特征在于,从第二计算设备到第一计算设备的带宽大于从第一计算设备到第三计算设备的带宽。
17.计算机可读媒介具有存储之中的数据结构,该数据结构包括第一字段,适用于识别资源的类型;第二字段,适用于识别设备,该设备包括对应于在第一字段中所识别的资源类型的资源;一组至少有一个第三字段,各个第三字段在对应于的第二字段的组中,用于识别有关第一字段所识别的设备资源的信息;并且,其中,数据结构用于向不同于在第二字段中所识别的其它设备提供资源信息,使得其它设备可以使用在第三字段中所识别的资源。
18.如权利要求17所述数据结构,其特征在于,第一字段包括对应于存储资源类型的信息。
19.如权利要求18所述数据结构,其特征在于,第三字段组包括对应于存储资源总的尺寸数据的信息。
20.如权利要求18所述数据结构,其特征在于,第三字段组包括对应于存储资源为使用空间的信息。
21.如权利要求17所述数据结构,其特征在于,第一字段包括对应于带宽数据的信息。
22.如权利要求17所述数据结构,其特征在于,第一字段对应于处理的能力。
23.如权利要求22所述数据结构,其特征在于,第三字段组包括对应于处理器的速度数据的信息。
24.如权利要求22所述数据结构,其特征在于,第三字段组包括对应于处理器使用数据的信息。
25.如权利要求22所述数据结构,其特征在于,第三字段组包括对应于存储器的尺寸数据的信息。
26.如权利要求25所述数据结构,其特征在于,第三字段组包括对应于存储器的尺寸数据的信息。
27.如权利要求17所述数据结构,其特征在于,第二字段包括识别如个人计算设备的信息。
28.如权利要求17所述数据结构,其特征在于,第二字段包括识别如磁盘驱动器设备的信息。
29.如权利要求17所述数据结构,其特征在于,第二字段包括识别如电话设备的信息。
全文摘要
一种系统,和方法涉及适用于发现和讨论在各种计算设备中的有效计算资源,以及适用于暴露作为软件应用程序寻址服务的这些资源的数据结构。该数据讨论了根据基于身份表格而设置的资源。计算资源可以包括,例如,存储容量,带宽处理能力,输入方法和机制,以及提交的方法。该方法和系统是基于身份,从而用户(具有身份的)可以访问与身份所约定的分布资源。
文档编号G06F13/38GK1471009SQ0314573
公开日2004年1月28日 申请日期2003年6月30日 优先权日2002年6月28日
发明者D·阿勒斯, G·M·穆尔, D 阿勒斯, 穆尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1