支持多个用户的系统和方法转让专利

申请号 : CN200580001871.4

文献号 : CN1906573B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尤里·埃尔·朱格雷戈里·扬

申请人 : 美国博通公司

摘要 :

本发明涉及一种支持将计算资源与其输入/输出分离以及在一个或多个用户中共享计算资源的系统和方法。在一个实施例中,支持一个或多个用户设备的系统包括计算引擎、第一用户设备和第二用户设备。所述计算引擎被配置以提供虚拟化。例如,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例。所述第一用户设备连接到所述计算引擎,并能访问所述特定操作系统的第一实例。所述第二用户设备连接到所述计算引擎,并能够访问所述特定操作系统的第二实例。在一个例子中,用户设备是不运行应用程序或操作系统的输入/输出设备。

权利要求 :

1.一种支持多个设备的系统,包括:

用于提供虚拟化的计算引擎,其包括中央处理单元,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例;

通过以太网连接到所述计算引擎的第一用户设备,其访问多个刀片服务器中一个特定刀片服务器中的所述特定操作系统的第一实例,所述第一用户设备包括键盘、鼠标、网络控制器、图像引擎和显示屏;所述键盘连接于网络控制器,后者提供至以太网的接入;所述网络控制器连接于图像引擎,所述图像引擎连接于显示屏,其中由键盘和鼠标产生的输入信号被网络控制器经由以太网发送至计算引擎;其中,所述计算引擎的中央处理单元对接收到的来自远程第一用户设备的输入信号进行处理,以替代在所述第一用户设备本地进行处理;其中,处理后的输入信号随后被发送至所述第一用户设备以通过所述图像引擎和显示屏进行显示;和连接到所述计算引擎的第二用户设备,其访问所述特定操作系统的第二实例。

2.根据权利要求1所述的系统,其中,所述第一用户设备和第二用户设备通过网络连接到所述计算引擎。

3.根据权利要求1所述的系统,其中,所述计算引擎使用存储网络。

4.根据权利要求1所述的系统,其中:

所述第一用户设备和第二用户设备包括嵌入的精简指令集计算机(RISC)核心。

5.一种服务器,包括:

多个刀片服务器,其包括特定的刀片服务器,所述特定的刀片服务器提供虚拟化,其包括中央处理单元,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例;

通过网络连接到所述特定刀片服务器的第一用户设备,其访问所述特定操作系统的第一实例,所述第一用户设备包括键盘、鼠标、网络控制器、图像引擎和显示屏;所述键盘连接于网络控制器,后者提供至网络的接入;所述网络控制器连接于图像引擎,所述图像引擎连接于显示屏,其中由键盘和鼠标产生的输入信号被网络控制器经由以太网发送至计算引擎;其中,所述计算引擎的中央处理单元对接收到的来自远程第一用户设备的输入信号进行处理,以替代在所述第一用户设备本地进行处理;其中,处理后的输入信号随后被发送至所述第一用户设备以通过所述图像引擎和显示屏进行显示;和通过网络连接到所述特定刀片服务器的第二用户设备,其访问所述特定操作系统的第二实例;

其中所述第一用户设备和第二用户设备本地不提供操作系统资源,和其中所述特定刀片服务器为所述第一用户设备和第二用户设备提供操作系统资源。

6.根据权利要求5所述的服务器,其中:

所述特定操作系统的第一实例或者在所述特定操作系统的第一实例上运行的特定应用程序的第一实例为第一用户设备提供处理资源,和所述特定操作系统的第二实例或者在所述特定操作系统的第二实例上运行的特定应用程序的第二实例为第二用户设备提供处理资源。

7.一种支持多个用户设备的方法,包括:

在多个刀片服务器中的特定的刀片服务器上虚拟地提供操作系统的多个实例,所述特定的刀片服务器包括中央处理单元;

通过网络将多个远程用户设备与所述操作系统的多个实例连接,每个远程用户设备连接到操作系统的相应实例上,多个远程用户设备中特定的远程用户设备包括键盘、鼠标、网络控制器、图像引擎和显示屏;所述键盘连接于网络控制器,后者提供至网络的接入;所述网络控制器连接于图像引擎,所述图像引擎连接于显示屏;

由键盘和鼠标产生的输入信号;

所述特定的刀片服务器经由网络控制器经和网络接收所述输入信号;

在所述中央处理单元对接收到的的输入信号进行处理,以替代在所述第一用户设备本地进行处理;及将处理后的输入信号经由网络、网络控制器和图像引擎发送至显示屏进行显示。

8.根据权利要求7所述的方法,其中,以一一对应的方式将每个远程用户设备排他性地连接到所述操作系统的对应实例上。

9.根据权利要求7所述的方法,其中,所述多个远程用户设备无线连接于所述服务器。

说明书 :

支持多个用户的系统和方法

技术领域

[0001] 本发明涉及支持多个用户设备、多个用户的系统和方法。

背景技术

[0002] 传统桌面刀片式系统(blade system)中,使用小协议(thin protocol)如远程桌面协议(RDP)将用户桌上型电脑连接到基本以太网交换机上。交换机提供用户桌上型电脑到刀片服务器(server blade)的映射。交换机通过支持10/100Base-T访问方式的刀片式网络连接到多个刀片服务器上。所述用户桌上型电脑是具有中央处理器(CPU)的通用电脑,可运行单个通用操作系统(如DOS、Windows)。所述刀片服务器也运行单个通用操作系统,在该通用操作系统上运行一个或多个应用程序。
[0003] 通过比较本发明后续将要接合附图介绍的系统,现有技术的其他局限性和弊端对本领域的普通技术人员来说是显而易见的。

发明内容

[0004] 本发明的一些方面涉及支持一个或多个用户的系统和方法。
[0005] 在根据本发明一些方面的一个实施例中,所述系统可包括具有中央处理器(CPU)、芯片集、网络控制器和存储器(如直接附加存储器或外接存储器)的计算引擎。输入输出(I/O)收集单元接收和处理将发送给本地显示器的输出、可选的音频输出及其他I/O输出(如USB的反馈和发送给USB设备的指令)。例如,所述处理包括以下一项或多项:格式变化、压缩、网络传输的适应、网络延迟和不稳定性的适应以及有限网络带宽的适应。I/O收集器将这些信号传送给网络控制器,以通过网络将信号传输给远程设备。
[0006] 在根据本发明的一个实施例中,I/O收集器以不破坏计算引擎的硬件、软 件、操作系统或应用程序的基础架构的方式实施。这种方式允许使用大量的硬件和软件来创建远程设备的新模型,所述远程设备可以是不具有本地应用程序计算能力的I/O设备。 [0007] 在根据本发明的一个实施例中,所述远程设备为其用户提供一种计算环境,在用户体验上该计算环境与完全本地的计算引擎所提供的计算环境没有区别。所述远程设备不需要具有运行操作系统或应用程序的能力。它可以具有使I/O与远程用户可用的I/O设备相适应的处理能力。它还可以具有以一种与适应于计算引擎相似的方式使I/O适应于网络的能力。
[0008] 在根据本发明一些方面的一些实施例中,为本地输入和输出而设计的标准机器可以分成计算部分和I/O部分。但是,例如除了增加了I/O收集器之外,计算引擎可以不发生改变。远程用户能够以很低的硬件成本获得强大的计算引擎能力。
[0009] 在根据本发明一些方面的一个实施例中,支持一个或多个用户设备的系统包括计算引擎、第一用户设备和第二用户设备。所述计算引擎(例如,一个或多个服务器)被配置以提供虚拟化。所述虚拟化提供特定操作系统的第一实例(first instance)和特定操作系统的第二实例(second instance)。所述第一用户设备可以连接到所述计算引擎,并可以访问所述特定操作系统的第一实例。所述第二用户设备可以连接到所述计算引擎,并可以访问所述特定操作系统的第二实例。
[0010] 在根据本发明一些方面的一个实施例中,支持一个或多个用户设备的系统包括计算引擎、第一用户设备和第二用户设备。所述计算引擎用于提供虚拟化。例如,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例(instance)和/或另一个操作系统的第一实例(instance)。所述第一用户设备可以连接到所述计算引擎,并访问所述特定操作系统的第一实例。所述第二用户设备可以连接到所述计算引擎,并访问所述特定操作系统的第二实例和/或另一个操作系统的第一实例。
[0011] 在根据本发明一些方面的另一实施例中,提供一种服务器,例如,包括多个刀片服务器、第一用户设备和第二用户设备。所述多个刀片服务器可包 括提供虚拟化的特定的刀片服务器,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例。所述第一用户设备通过网络连接到所述特定刀片服务器,并可访问所述特定操作系统的第一实例。所述第二用户设备通过网络连接到所述特定刀片服务器,并可访问所述特定操作系统的第二实例。所述第一用户设备和第二用户设备在本地可以不提供操作系统资源。所述特定刀片服务器可以为所述第一用户设备和第二用户设备提供操作系统资源。 [0012] 在根据本发明一些方面的另一实施例中,用户设备将提供如下的一项或多项:用户接口、输入/输出(如,本地输入/输出,例如通过USB、蓝牙或无线)、到计算引擎的连通性。所述用户设备可通过一个或多个输入设备(例如键盘和鼠标)提供输入,并通过一个或多个输出设备(例如,用户显示器和扬声器)提供输出,而信息,如将要提供的信息,在外部主机(例如外部的计算引擎主机)上计算,在用户设备上仅需进行最小的处理(例如可选的视频解压缩和驱动显示器)。
[0013] 在根据本发明一些方面的再一个实施例中,提供一种支持多个用户设备的方法,例如,包括以下一项或多项:在服务器上虚拟地提供操作系统的多个实例(instance);通过网络将多个远程用户设备与所述操作系统的多个实例连接,将每个远程用户设备连接到操作系统的相应实例上;以及对于多个远程用户设备,遥控服务器的处理资源。 [0014] 根据本发明的一方面,提供一种支持多个设备的系统,包括:
[0015] 用于提供虚拟化的计算引擎,所述虚拟化提供特定操作系统的第一实例和特定操作系统的第二实例;
[0016] 连接到所述计算引擎的第一用户设备,其访问所述特定操作系统的第一实例;和 [0017] 连接到所述计算引擎的第二用户设备,其访问所述特定操作系统的第二实例; [0018] 所述第一用户设备和第二用户设备通过网络连接到所述计算引擎; [0019] 所述第一用户设备和第二用户设备的处理资源设置在所述计算引擎上。 [0020] 作为优选,所述计算引擎包括中央处理单元。
[0021] 作为优选,根据权利要求1所述的系统,其中:
[0022] 所述第一用户设备和第二用户设备不包括中央处理单元,或者
[0023] 所述第一用户设备和第二用户设备包括嵌入的精简指令集计算机(RISC)核心。 [0024] 作为优选,所述计算引擎至少支持以下之一:传输控制协议(TCP)减负、远程直接存储器存取(RDMA)、互联网小型计算机系统接口(iSCSI)。
[0025] 作为优选,所述计算引擎至少连接到以下之一:直接附加存储器(DAS)、网络存储器。
[0026] 作为优选,所述计算引擎包括第一网桥、第二网桥、网络控制器、I/O收集器、存储器和直接附加存储器,
[0027] 所述第一网桥连接到所述存储器,
[0028] 所述第二网络连接到所述直接附加存储器,
[0029] 所述第一网桥和第二网桥连接到所述I/O收集器,
[0030] 所述I/O收集器连接到所述网络控制器,
[0031] 所述网络控制器通过网络连接到第一用户设备和第二用户设备。 [0032] 根据本发明的又一方面,提供一种支持多个用户设备的方法,包括: [0033] 在服务器上虚拟地提供操作系统的多个实例;
[0034] 通过网络将多个远程用户设备与所述操作系统的多个实例连接,每个远程用户设备连接到操作系统的相应实例上;和
[0035] 对于多个远程用户设备,遥控服务器的处理资源;
[0036] 在远程用户设备上接收输入信号;
[0037] 将所接受的信号发送给服务器以进行处理;
[0038] 将处理后的信号发送给远程用户设备;和
[0039] 在远程用户设备上输出所述处理后的信号。
[0040] 作为优选,
[0041] 以一一对应的方式将每个远程用户设备排他性地连接到所述操作系统的对应实例上。
[0042] 作为优选,操作系统的相应实例对所发送的信号进行处理。
[0043] 作为优选,所述遥控包括不为每个远程用户设备提供本地操作系统。 [0044] 根据下面对本发明进行的详细描述以及附图,将领会到本发明的其他优点和特征。其中,同一个附图标记在各幅附图中用于表示相同的或相似的部件。 附图说明
[0045] 图1是根据本发明一些方面的实施例的支持多个用户的系统的示意框图; [0046] 图2是根据本发明一些方面的实施例的支持多个远程设备的系统的示意框图; [0047] 图3是根据本发明一些方面的实施例的远程用户设备的示意框图; [0048] 图4是根据本发明一些方面的实施例的支持多个设备的系统的示意框图; [0049] 图5是根据本发明一些方面的实施例的虚拟化示意图。

具体实施方式

[0050] 根据本发明一些方面的一些实施例涉及支持一个或多个设备(例如,一个或多个用户设备)的系统和方法。例如,根据本发明一些方面的一些实施例涉及支持一个或多个用户的系统和方法。
[0051] 根据本发明一些方面的一些实施例可支持将计算资源(computeresource)从输入/输出系统中分离出。根据本发明一些方面的一些实施例提供支持远程输入/输出(I/O)系统的能力,所述远程I/O系统给计算资源提供信号,所述计算资源将反馈信息提供给所述远程I/O系统。
[0052] 根据本发明一些方面的一些实施例可在计算引擎(如服务器)中提供虚拟化。例如,该虚拟化提供操作系统的多个实例以及在该操作系统的相应实例上运行的程序多个实例。
[0053] 根据本发明一些方面的一些实施例,处理资源被转移到或者集中到计算引擎中。根据本发明一些方面的一些实施例,远程用户设备得以简化,使得远程用户设备不需要提供很多的处理资源。根据本发明一些方面的一些实施例,远程用户设备使用嵌入式系统。根据本发明一些方面的一些实施例,远程用户设备接收到的输入信号通过网络发送给计算引擎,由计算引擎进行处理。根据本发明一些方面的一些实施例,计算引擎产生的输出信号通过网络发送给远程用户,以向用户显示。
[0054] 根据本发明一些方面的一些实施例,存储资源转移到或集中到计算引擎。根据本发明一些方面的一些实施例,远程用户设备得以简化,以使远程用户设备不需要提供很多的存储资源。根据本发明一些方面的一些实施例,远程用户设备能够通过计算引擎在网络中访问存储资源。在根据本发明一些方面的一些实施例中,存储资源可直接附加到计算引擎上,或者存储资源可连接到(如通过存储网络)计算引擎上。在根据本发明一些方面的一些实施例中,可将存储资源连接到远程用户设备上并使之为计算引擎所用。例如,通过通用串行总线(USB)端口连接到远程用户设备上的记忆棒可以为计算引擎所用。 [0055] 根据本发明一些方面的一些实施例提供一种服务器系统,其包括一个或多个刀片服务器。在根据本发明一些方面的一些实施例中,服务器系统中特定的刀片服务器能够虚拟地提供操作系统的多个实例。所述虚拟地提供的操作系统的多个实例能够在该特定刀片服务器上并发运行。操作系统的每一实例与一个通过网络连接到该特定刀片服务器的相应用户设备关联(例如,专有地或者排他性地关联)。
[0056] 图1是根据本发明一些方面的实施例的支持多个用户的系统的示意框图。例如,该系统可包括连接到一个或多个远程设备120的一个或多个计算引擎100。参考图1,计算引擎100可通过网络(fabric)300(例如,一个或多个有线网络和/或无线网络)连接到一个或多个远程设备120上。例如,计算引擎100可包括中央处理单元(CPU)140、北桥160、南桥180、存储器200、网络控制器(fabric controller)470、输入/输出(I/O)收集器480、处理器490(例如,图象引擎)和直接附加存储(DAS)设备220(如硬盘驱动器)。计算引擎100可连接到存储系统(如网络附加存储器(NAS)设备、存储区域网络(storage area network,SAN)和/或其他类型的存储设备/系统),而不是与直接附加存储(DAS)结合。例如,远程设备120可包括网络控制器240(例如,千兆以太网(GbE)控制器)、图象引擎260、帧缓冲器280(例如,显示缓冲器)、I/O控制器500、数字-模拟转换器(DAC)510、屏幕520和其他输入/输出设备530(如键盘、鼠标、打印机、记忆棒)。
[0057] 图1示出了根据本发明的一些方面的实施例所应用的组件之间的一些连接。例如,远程设备120的网络控制器240可连接到网络交换机或者计算引擎100的网络控制器470,网络控制器470又连接到北桥160或者南桥180。南桥180可连接到DAS设备220。存储器200可连接到北桥160,北桥160又连接到CPU 140。南桥180或北桥160可连接到网络控制器470,网络控制器470连接到网络330。I/O收集器480可与处理器490(如图象引擎)、南桥180的音频I/O以及南桥180的其他I/O(如USB I/O)连接。在远程设备120上,网络300可连接到网络控制器240,而网络控制器240又连接到图象引擎260。图象引擎260可连接到帧缓冲器280。例如,图象引擎260连接到屏幕520(例 如,监视器以及显示设备如液晶显示器、发光二极管显示器和等离子显示器)。I/O控制器500可适用于连接用户输入设备(例如,键盘和鼠标)或连接扩展用户能力的设备(如USB记忆棒、打印机、头戴式耳机等)。在根据本发明一些方面的一些实施例中,计算引擎100与远程设备120之间的连接在相同的网络(如以太网、局域网等)中,通过网络控制器240、470连接。可以将计算引擎100的北桥160与南桥180集成到单个芯片组中,或者将它们分成不同的功能组分。也可以将存储控制器作为CPU 140的一部分。
[0058] 具体实施时,远程设备120接收的输入信号,例如,网络控制器240接收用户接口(如键盘、鼠标、图象用户接口、麦克风、视频摄像机、数码相机等)产生的输入信号,该用户接口安装在远程设备120上或者作为远程设备120的一部分。在根据本发明一些方面的一些实施例中,远程设备120进行很少的处理或者不进行处理。例如,远程设备120可能不提供本地操作系统(如,本地通用操作系统)。网络控制器240将要送往计算引擎100的输入信号封装成数据包或帧。在根据本发明一些方面的一些实施例中,在数据上应用安全措施,例如,为平台访问权限和验证和/或数据的安全使用验证和/或加密。接着,网络控制器240将这些数据包发到网络330(如千兆以太网),网络330将所述数据包传输给计算引擎100,具体地,是传输给计算引擎100的网络控制器470。连接到南桥180的网络控制器470将来自远程设备120的成帧的输入信号发送到CPU 140以进行处理,例如,由操作系统或者运行在操作系统上的程序处理。远程设备120的输入信号也可存储在存储器200中,其中所存储的信号可被CPU 140访问。
[0059] 根据本发明一些方面的一些实施例,CPU 140提供虚拟化。例如,所述虚拟化可提供操作系统的多个实例。例如,所述虚拟化还可提供应用程序的多个实例(例如,文字处理程序、帐目分析表应用程序、数据库应用程序等)。所述应用程序的每个实例都能在各自的操作系统的实例中运行。因此,每个远程设备120能访问(如排他性地访问和/或并发访问)各自的操作系统的实例。另外,每个远程设备120能访问(如排他性地访问和/或并发访问)在各自操作系统实例上运行的特定应用程序的实例。因此,例如,通过虚拟化, 第一远程设备120能访问在特定操作系统的第一实例运行的特定文字处理程序的第一实例;第二远程设备120能够访问在特定操作系统的第二实例运行的特定文字处理程序的第二实例。通过虚拟化,特定操作系统的运行和特定文字处理程序的运行可以彼此独立。 [0060] 计算引擎100还可以与连接到计算引擎100的存储单元或者系统通信。例如,计算引擎100支持一种或多种协议,以便能够与一个或多个存储单元或系统进行通信,例如,所述协议包括小型计算机系统接口(SCSI)、因特网SCSI(iSCSI)、远程直接存储访问(RDMA),或其他协议(如,专用协议或用户化协议)如光纤信道。因此,CPU 140能访问(如,读取或写入)存储单元或系统。
[0061] 北桥180能提供到存储器200或CPU 140的连接。处理之后,CPU 140将处理后的信号发送给远程设备120,具体地,发送给网络控制器240。网络控制器240将这些信号分发给远程设备120的图象引擎260和/或I/O控制器500。例如,在将处理后的信号发送给(如路由给)远程设备120的图象引擎260之前,CPU 140或北桥160或I/O控制器470对所述处理后的信号进行打包或者压缩。图象引擎260对所述处理后的信号进行适应性改变,以通过输出设备(如显示器)输出;而I/O控制器500对其它信号进行适应性改变以输出或向I/O设备(如打印机、扬声器等)输出命令。图象引擎260对所述处理后的信号进行适应性改变以产生帧信号,所产生的帧信号被传输到帧缓冲器280中以进行显示。 [0062] 在根据本发明一些方面的实施例中,使用远程设备120的远程用户移动鼠标,从而产生输入信号。所述通过鼠标产生的输入信号由I/O控制器500处理,并传送到网络240中以形成帧和传送给计算引擎100。计算引擎100处理所述输入信号。在根据本发明一些方面的一些实施例中,通过虚拟化,计算引擎的网络控制器470可将信号分发给操作系统的多个可能实例中的一个对应的实例,或者分发给对应的在操作系统上运行的、处理该输入信号的程序。在根据本发明一些方面的一些实施例中,CPU 140、操作系统以及应用程序都不能区分是远程设备120产生的输入和还是本地产生的输入。通过处理 输入信号,CPU140鉴于所产生的输入信号确定输出(例如,显示器、扬声器等)或者其他任何结果。一旦确定,输出信号将从计算引擎100发送到计算引擎100的本地I/O设备。I/O收集器480可用于收集I/O,并将I/O传递给网络控制器470以进行成帧。网络控制器470将数据发送给已选择的远程设备120,接着,该远程设备120根据该输出信号产生输出(例如,在远程设备
120的显示器上显示输出信号、在远程设备120的显示器上显示输出信号中的变化、产生音频输出等)。因此,在根据本发明一些方面的一些实施例中,操作系统处理和应用程序处理是在计算引擎100中完成的,而不是在远程设备120上完成。
[0063] 根据本发明一些方面的一些实施例中,有多个远程设备120连接到计算引擎100。因此,远程设备120共享计算引擎100的资源,例如,包括处理、内存、存储器、网络和图形(graphics)资源。在根据本发明一些方面的一些实施例中,通过虚拟化共享资源。 [0064] 图2是根据本发明一些方面的支持多个远程设备的系统的实施例的示意框图。多个远程设备120通过网络330(例如,以太网、千兆以太网、局域网(LAN)等)连接到计算引擎100上。计算引擎100包括例如CPU、芯片集和存储器(CCM)310、I/O收集器480、网络控制器300、物理层(未示出)和存储器320。为简化起见,图2中示出了计算引擎100的一些连接以及一些组件。计算引擎100可以是组成服务器系统(例如,在一个或多个位置处)的一个或多个计算引擎100中的一个。虽然所示的是计算引擎100的局部,但存储器
320可以是DAS或网络存储器(例如,通过网络与计算引擎100连接的存储器)。例如,计算引擎100能使用网络控制器300(例如,千兆以太网控制器)以与网络存储器通信。为加速访问网络存储器以及释放CCM 310的资源,可配置网络控制器300使其支持传输控制协议(TCP)减负、RDMA和/或iSCSI。在根据本发明一些方面的一些实施例中,协议支持主要由硬件(例如,集成电路或集成半导体芯片)完成。
[0065] 在根据本发明一些方面的一些实施例中,远程用户120通过虚拟化共享计算引擎100的资源。在根据本发明一些方面的一些实施例中,通过虚拟化, 计算引擎100运行的操作系统的实例的数目与连接到该计算引擎100上的远程设备120的数目相同。在根据本发明一些方面的一些实施例中,通过虚拟化,每个远程设备120都能够访问(例如,对于其他远程设备120而言排他性地访问)属于它的操作系统实例或属于它的应用程序实例。在一些情况之下,虚拟化允许现有的应用程序、应用程序接口(API)和/或操作系统不需要附加的改变就可运行。
[0066] 在根据本发明一些方面的一些实施例中,远程设备120向其用户提供相同的服务,如同远程设备120运行本地操作系统和完整硬件(例如,存储器、音频硬件、视频硬件等)一样。在根据本发明一些方面的一些实施例中,远程设备120的用户无法容易地查明操作系统或应用程序是本地运行的还是远程访问的。对用户而言,远程处理资源(例如,操作系统资源)对计算引擎100是无缝的。
[0067] 在根据本发明一些方面的一些实施例中,远程设备120和计算引擎100提供远程设备120和计算引擎100之间通信的安全性。业内有多种已知的安全形式,例如机器验证、数据验证(例如,为键盘和鼠标的通信进行数据验证)和个人使用加密(例如,使用密钥)和验证。在根据本发明一些方面的一些实施例中,远程设备120提供可信赖的平台模块。所述安全措施保护以下一种或多种:部署、管理、内容发布、用户标识等。 [0068] 根据本发明一些方面的一些实施例,提供一种网络管理实体550。例如,网络管理实体550可用于验证远程设备、将远程设备关联到计算引擎上,和/或根据增加的负荷或者失效转移(fail over)情况下重新分配计算引擎资源。网络管理实体550还能用于准予对某一服务、应用程序或网络服务质量(QoS)或服务种类(COS)服务水平的访问权,或者用于协商远程设备与网络330之间的QoS参数。例如,网络管理员的注意力将被转移到以下一项或多项:未授权的远程设备的攻击企图;对未授权区域、服务、应用程序或设备的访问请求;连接和使用率;服务质量以及计算引擎或远程设备的故障。可用心搏信号来监测所连接设备的健康。
[0069] 图3是根据本发明一些方面的远程用户设备的实施例的示意框图。为了 简洁,远程用户设备120仅仅示出了一些组件以及其间的一些连接。如图所示,远程用户设备120包括物理层340、网络控制器240、输入管理器350、通用串行总线(USB)控制器360、音频播放370、图象存储器380(例如,帧缓冲器)、图象控制器390、屏幕400、扬声器560、头戴式耳机570、键盘580、鼠标590和安全模块410。输入管理器350包括,例如,键盘控制器、鼠标控制器和蓝牙控制器。安全模块410提供以下一项或多项:网际协议安全(IPsec)和可信赖平台模块(TPM)。IPsec能保护通信信道,TPM直接地或者通过使用网络管理实体550的服务验证到计算引擎100的远程设备120。
[0070] 在根据本发明一些方面的一些实施例中,输出设备可包括以下一项或多项:连接到音频播放370的附加音频设备(例如扬声器或头戴式耳机);连接到USB控制器360的USB设备(例如键盘或鼠标);连接到图象控制器390的屏幕400;连接到物理层340的网络(例如,千兆以太网)——而该网络又连接到网络330。在根据本发明一些方面的一些实施例中,例如,一些输入设备包括以下一项或多项:键盘、鼠标、蓝牙设备、视频输入、音频输入、传感器输入、用户接口(例如,图象用户接口)或连接到输入管理器350的其他输入设备;连接到物理层340的网络;连接到USB控制器360的USB设备。在根据本发明一些方面的一些实施例中,输入管理器350中的键盘/鼠标控制器例如通过千兆以太网与计算引擎进行通信(如发送命令)。物理层340能产生警告。输入和输出可以是可移动的,例如,闪存盘、闪存或记忆棒。其他输入和输出可包括打印机和扫描仪。
[0071] 根据本发明一些方面的一些实施例,提供一种消耗以太网带宽大概小于1Gb/s的图像格式。根据本发明一些方面的一些实施例,在大多数情况之下,提供一种消耗以太网带宽大概小于10Mb/s的图像格式。根据本发明一些方面的一些实施例,在远程设备120上提供一种以低成本高性能为特征的图像格式。根据本发明一些方面的一些实施例在远程设备120上提供标准(或衍生)图象核心。在根据本发明一些方面的一些实施例中,通过网络控制器240从物理层340接收的图象数据被“零拷贝”到图象存储器380中。
[0072] 根据本发明一些方面的一些实施例,提供一种即使在遥控从计算引擎100 的CPU140到远程设备120之间的高带宽接口时,也具有高性能图象的系统。
[0073] 图4是根据本发明一些方面的支持多设备的系统的实施例的示意框图。例如,远程设备包括连接到交换机430的用户桌上型电脑420。交换机430被连接到一个或多个计算引擎,例如,包括通过刀片式网络440连接到一个或多个刀片服务器450。在根据本发明一些方面的一些实施例中,用户桌上型电脑使用嵌入式的输入/输出(I/O)系统与运行在某个刀片服务器450上的虚拟桌面上的操作系统实例进行通信。
[0074] 在根据本发明一些方面的一些实施例中,用户桌上型电脑420不是通用计算机。例如,用户桌上型电脑420能使用嵌入式系统。在根据本发明一些方面的一些实施例中,用户桌上型电脑420能运行永久固化在只读存储器如ROM或闪存芯片中的软件。例如,所述用户桌上型电脑420可包括以下一项或多项:能够运行实时操作系统(RTOS)的低成本嵌入式处理器,其带有具备TOE功能的GbE控制器,与在CPU上运行TCP/IP的处理器相比,该控制器提供了,例如,高性能的图象,低的延迟和低的功率需求;通过在RDMA上运行图象,计算需求低;以及(在两端)通过TPM和加密的强大的验证(例如,键盘/鼠标信息/命令的)。
[0075] 在根据本发明一些方面的一些实施例中,用户桌上型电脑420通过网络(例如,千兆以太网)连接到交换机430,所述网络支持高带宽传输数据的协议,例如键盘-视频-鼠标(KVM)数据。
[0076] 在根据本发明一些方面的一些实施例中,交换机420提供一个或多个具有L3-7过滤器的千兆交换机。可以配置交换机420使其保护用户桌上型电脑420和交换机420之间的通信。可以配置交换机420使其支持网络数据(例如,LAN数据)、群集数据(例如,SAN数据和RDMA数据)和存储器数据(例如,iSCSI数据)。在根据本发明一些方面的一些实施例中,将优先级(更高的优先级)赋予延迟敏感型数据,例如鼠标点击、音频和群集数据(例如RDMA数据)和存储器数据(例如,iSCSI数据)。不同的VLAN可用于启用不同的QoS或COS。
[0077] 在根据本发明一些方面的一些实施例中,刀片式网络440包括 1Gb/2.5Gb/10Gb串化器/解串化器(SerDes)。
[0078] 在根据本发明一些方面的一些实施例中,利用虚拟存储器,刀片服务器450提供动态的交叉的刀片资源分配。例如,所述刀片服务器450包括以下一项或多项:桌上型刀片和存储刀片。例如,存储刀片可以是iSCSI存储刀片。iSCSI存储刀片能提供串行高级技术附件规格(SATA)驱动器/串行附加SCSI(SAS)驱动器、独立磁盘冗余阵列(RAID)和存储器虚拟化。所述桌上型刀片可以是无碟桌上型刀片。例如,所述无碟桌上型刀片能提供以下一项或多项:具有动态硬件虚拟化的高性能桌上型电脑;具有iSCSI启动、TOE和/或RDMA的、能头提供快速虚拟化和高性能图象的iSCSI。
[0079] 图5是根据本发明一些方面的虚拟化的实施例。计算引擎100提供虚拟化。该虚拟化提供多个操作系统OS。在根据本发明一些方面的一些实施例中,该虚拟化为每个远程设备120提供操作系统OS以及该OS支持的应用程序。接着,每个远程设备都将具有专用的操作系统OS。每个应用程序A1(例如,文字处理应用程序)的实例能运行在操作系统OS的每个实例上。每个应用程序A2(例如,分析表应用程序)的实例能运行在操作系统OS的每个实例上。每个应用程序A3(例如,数据库应用程序)的实例能运行在操作系统OS的每个实例上。
[0080] 根据本发明一些方面的一些实施例,通过集中系统的处理能力来降低成本结构。例如,通过集中计算引擎100中的处理能力,可使多个远程设备120共享很多资源。在另一个实施例中,CPU 140运行的应用程序可由远程设备120共享。根据本发明一些方面的一些实施例,提供一种使用虚拟化的计算引擎100,其使每个远程设备120都分配到自己的虚拟资源(例如,属于自己专用的应用程序副本、属于自己专用的操作系统的副本、虚拟存储器等)。
[0081] 根据本发明一些方面的一些实施例提供更好的易管理性。例如,利用集中化的计算引擎,能够在一个集中的地方处理很多问题。此外,集中化的资源共享,例如集中化的存储器或计算引擎能力共享提供更多的可管理性,也更经济。另外,可以简化远程设备120,因为大部分或者所有的处理都在计算引擎100上进行。
[0082] 根据本发明一些方面的一个或多个实施例中具有以下一个或多个优点。 [0083] 将传统资源的通用桌上型电脑或计算机分成远程用户设备和计算引擎,缩减了企业的桌上型电脑的成本和消费者空间。对企业而言,总体拥有成本(TCO)降低了,例如,因为资本支出(CAPEX)的减少;运营支出减少了,例如,因为个人计算机(PC)、存储器的整合以及管理、应用程序配置的容易性。对于消费者空间,可用一个计算引擎支持多个用户;配置成本减低了,例如,因为桌上型电脑配置更便宜更简单(例如,不需要为每个显示器配置完整的PC);减少了占用空间;能够集中配置应用程序。
[0084] 因为用户设备仅仅包括用户I/O,所以能够防止用户设备的OS、应用程序、硬件的变化。因此,刀片或计算引擎换代或替代时,不需要重新配置用户设备,而用户设备的数量可能是很大的。
[0085] 因为远程设备的复杂性、功率和不动产成本低,所以提供的服务仅需一点费用或者无需费用。例如,在出现故障的情况之下,用户能替换用户设备,而不需要派遣技术员,而派遣技术员通常需要更多的成本。例如,在消费环境下,远程设备的数目可随着时间而增长。
[0086] 本申请参考以下美国专利申请:申请号60/537,785,申请日2004年1月20日;申请号60/585,360,申请日2004年7月1日;申请号60/501,794,申请日2003年9月10日;申请号10/983,156,申请日2004年9月10日;申请号60/527,739,申请日2003年12月8日;申请号11/007,063,申请日2004年12月8日。本申请参考并结合了上述申请的全部内容。
[0087] 虽然本发明是通过一些实施例进行描述的,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。