用于控制对外围设备的访问的系统和方法

文档序号:789569 发布日期:2021-04-09 浏览:13次 >En<

阅读说明:本技术 用于控制对外围设备的访问的系统和方法 (System and method for controlling access to peripheral devices ) 是由 B·戴萨瑞森 于 2019-03-29 设计创作,主要内容包括:本发明公开了用于控制对外围设备的访问的计算机实现的方法,该方法可包括接收与尝试访问外围设备的过程相关的输入/输出请求。该方法还可包括确定过程的指示过程是否将被允许获得对外围设备的访问的访问状态。访问状态可基于过程的上下文属性。该方法还可包括如果访问状态指示过程不被允许访问外围设备,则通过从虚拟外围设备启动虚拟外围输出来对输入/输出请求进行响应。本发明还公开了各种其他方法、系统和计算机可读介质。(A computer-implemented method for controlling access to a peripheral may include receiving an input/output request related to a process attempting to access the peripheral. The method may also include determining an access status of the process indicating whether the process is to be allowed to gain access to the peripheral. The access state may be based on context attributes of the process. The method may also include responding to the input/output request by initiating a virtual peripheral output from the virtual peripheral device if the access status indicates that the process is not allowed to access the peripheral device. Various other methods, systems, and computer-readable media are also disclosed.)

用于控制对外围设备的访问的系统和方法

背景技术

越来越多的应用和服务通过网络诸如互联网可用。此外,用于支持那些服务的硬件和/或软件也越来越多地通过网络可用。对诸如计算机外围设备的硬件的远程访问增加了便利性并且增强了通信选项,但也带来了风险。恶意软件机制(例如蠕虫、病毒、特洛伊木马、rootkit)的扩散对个人和公司计算设备以及相关资产的隐私和完整性造成威胁。这种威胁加强了开发网络安全措施以确保不允许未授权和不兼容的设备访问各种网络资产的持续需求。然而,还希望此类措施不过度干扰合法访问,并且当授权访问丢失或被阻止时,希望向此类授权远程用户提供与访问失败相关的准确且丰富的信息。

因此,本公开识别并解决了对用于控制对外围设备的访问的系统和方法的需求。

发明内容

如将在下文更详细地描述的,本公开描述了用于控制对外围设备的访问的各种系统和方法。

在一个示例中,一种用于控制对外围设备的访问的方法可包括接收与尝试访问外围设备的过程相关的输入/输出请求。该方法还可包括确定过程的指示过程是否将被允许获得对外围设备的访问的访问状态。访问状态可基于过程的内容属性。该方法还可包括如果访问状态指示过程不被允许访问外围设备,则通过从虚拟外围设备启动虚拟外围输出来对输入/输出请求进行响应。

在一些实施方案中,访问状态的确定可包括基于指示过程是否应被允许访问外围设备的预定义规则来评估内容属性。

在一些实施方案中,访问状态的确定可包括由一个或多个计算设备从用户接收过程是否应被允许访问外围设备的指示。

在一些实施方案中,虚拟外围输出可包括指示过程的访问状态的信息。

在一些实施方案中,虚拟外围输出可包括指示过程是否与外围设备兼容的信息。

在一些实施方案中,一个或多个计算设备可利用来自虚拟外围设备的虚拟外围输出对来自过程的后续输入/输出请求进行响应。

在一些实施方案中,一个或多个计算设备可向与外围设备相关联的用户生成过程已被拒绝访问外围设备的警报。

在一些实施方案中,由一个或多个计算设备对输入/输出请求作出的响应可包括响应于确定访问状态指示过程不被允许访问外围设备而启动虚拟外围设备。

在一些实施方案中,虚拟外围设备的启动可包括使用至少一个视频类驱动程序来仿真物理外围设备。

在一些实施方案中,外围设备是网络摄像头,虚拟外围设备是虚拟网络摄像头,并且虚拟外围输出是视频流。

在一个实施方案中,一种用于控制对外围设备的访问的系统可包括存储在存储器中的若干模块,包括:接收模块,该接收模块接收与尝试访问外围设备的过程相关的输入/输出请求;确定模块,该确定模块确定过程的指示过程是否将被允许获得对外围设备的访问的访问状态,该访问状态基于过程的内容属性;以及响应模块,如果访问状态指示过程不被允许访问外围设备,则响应模块通过从虚拟外围设备启动虚拟外围输出来对输入/输出请求进行响应。该系统还可包括至少一个物理处理器,该至少一个处理器被配置为执行接收模块、确定模块和响应模块。

在一些实施方案中,确定模块可基于指示过程是否应被允许访问外围设备的预定义规则来评估内容属性。

在一些实施方案中,确定模块可接收过程是否应被允许访问外围设备的指示。

在一些实施方案中,虚拟外围输出可包括指示过程的访问状态的信息。

在一些实施方案中,虚拟外围输出可包括指示过程是否与外围设备兼容的信息。

在一些实施方案中,响应模块可利用来自虚拟外围设备的虚拟外围输出对来自过程的后续输入/输出请求进行响应。

在一些实施方案中,警报生成模块可向与外围设备相关联的用户生成过程已被拒绝访问外围设备的警报,并且至少一个物理处理器可被配置为执行警报生成模块。

在一些实施方案中,响应模块可响应于确定模块确定访问状态指示过程不被允许访问外围设备而启动虚拟外围设备。

在一些实施方案中,响应模块可使用至少一个视频类驱动器来仿真物理外围设备。

在一些实施方案中,外围设备可为网络摄像头,并且虚拟外围设备可为虚拟网络摄像头。

在一些示例中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令在由计算设备的至少一个处理器执行时,可使得计算设备:接收与尝试访问外围设备的过程相关的输入/输出请求;确定过程的指示过程是否将被允许获得对外围设备的访问的访问状态,该访问状态基于过程的内容属性;并且如果访问状态指示过程不被允许访问外围设备,则通过从虚拟外围设备启动虚拟外围输出来对输入/输出请求进行响应。

在一些实施方案中,访问状态的确定可包括基于指示过程是否应被允许访问外围设备的预定义规则来评估内容属性。

在一些实施方案中,访问状态的确定可包括从用户接收过程是否应被允许访问外围设备的指示。

在一些实施方案中,虚拟外围输出可包括指示过程的访问状态的信息。

在一些实施方案中,虚拟外围输出可包括指示过程是否与外围设备兼容的信息。

在一些实施方案中,非暂态计算机可读介质还可包括可执行指令,该可执行指令在由计算设备的至少一个处理器执行时,使得计算设备利用来自虚拟外围设备的虚拟外围输出对来自过程的后续输入/输出请求进行响应。

在一些实施方案中,非暂态计算机可读介质还可包括可执行指令,该可执行指令在由计算设备的至少一个处理器执行时,使得计算设备向与外围设备相关联的用户生成过程已被拒绝访问外围设备的警报。

在一些实施方案中,对输入/输出请求作出的响应可包括响应于确定访问状态指示过程不被允许访问外围设备而启动虚拟外围设备。

在一些实施方案中,虚拟外围设备的启动可包括使用至少一个视频类驱动程序来仿真物理外围设备。

在一些实施方案中,外围设备是网络摄像头,虚拟外围设备可以是虚拟网络摄像头,并且虚拟外围输出可以是视频流。

来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。

附图说明

附图示出了多个示例性实施方案并且作为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。

图1是用于控制对外围设备的访问的示例性系统的框图。

图2是用于控制对外围设备的访问的另外示例性系统的框图。

图3是用于控制对外围设备的访问的示例性方法的流程图。

图4是具有用于控制对外围设备的访问的I/O架构的示例的系统的框图。

图5是具有用于控制对外围设备的访问的I/O架构的另一个示例的系统的框图。

图6是具有用于控制对外围设备的访问的I/O架构的另一个示例的系统的框图。

图7是用于控制对作为外围设备的示例的网络摄像头的访问的示例性系统的框图。

图8是用于控制对作为外围设备的示例的音频卡的访问的示例性系统的框图。

图9是能够实现本文描述和/或示出的实施方案中的一个或多个实施方案的示例性计算系统的框图。

图10是能够实现本文描述和/或示出的实施方案中的一个或多个实施方案的示例性计算网络的框图。

在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落入所附权利要求范围内的所有修改形式、等同形式和替代形式。

具体实施方式

本公开整体涉及用于控制对外围设备的访问的系统和方法。如将在下文更详细描述的,通过将过程重定向到外围设备的虚拟版本来阻止过程获得对外围设备的访问,外围设备将保持安全,同时系统继续对来自过程的I/O请求进行响应并经由虚拟外围设备与过程通信。此外,通过继续响应I/O请求并经由虚拟外围设备与过程通信,系统能够向过程提供与拒绝访问相关的信息而不是仅仅丢弃I/O请求。这是重要的,因为当I/O请求刚被丢弃时,过程可报告关于缺少对外围设备的访问的不正确信息,这可导致混淆连接错误和对连接错误的低效故障诊断。

下面将参照图1至图2提供用于控制对外围设备的访问的示例性系统的详细描述。还将结合图3提供对应计算机实现的方法的详细描述。将结合图4至图5提供对示例性虚拟外围设备的详细描述。另外,将分别结合图9和图10提供能够实现本文描述的实施方案中的一个或多个实施方案的示例性计算系统和网络架构的详细描述。

图1是用于控制对外围设备220的访问(图2所示)的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。如将在下文更详细描述的,模块102可包括接收模块104、确定模块106、响应模块108和警报模块110。尽管被示为独立元件,但图1中的模块102中的一个或多个模块可以表示单个模块或应用程序的一部分。

在某些实施方案中,图1中的模块102中的一个或多个可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,并且如将在下文更详细描述的,模块102中的一个或多个可表示存储在一个或多个计算设备上并被配置为在该一个或多个计算设备上运行的模块,该一个或多个计算设备诸如图2中示出的设备(例如,计算设备202和/或服务器206)。图1中的模块102中的一个或多个还可以表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。

如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、以上各项中的一个或多个的变型或组合、和/或任何其他合适的存储存储器。

如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解译和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。除此之外或另选地,物理处理器130可执行一个或多个模块102以促进控制对外围设备220的访问。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以上各项中的一个或多个的各部分、以上各项中的一个或多个的变型或组合、和/或任何其他合适的物理处理器。

如图1所示,示例性系统100还可包括一个或多个数据存储设备,诸如数据存储设备120。数据存储设备120通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,数据存储设备120可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。

在某些实施方案中,数据存储设备120可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。数据存储设备120还可包括允许将计算机软件、数据或其他计算机可读指令加载到系统100的其他类似结构或设备。例如,数据存储设备120可被配置为读取和写入软件、数据或其他计算机可读信息。数据存储设备120还可为系统100的一部分,或者可为通过其他接口系统进行访问的独立设备。

在某些实施方案中,诸如图1所示的示例,数据存储设备120可存储如下所述的表示虚拟外围设备122、虚拟外围输出124、输入/输出(I/O)请求126和过程的请求访问外围设备220的访问状态128的数据。

图1中的示例性系统100可以用多种方式来实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可包括经由网络204与服务器206通信的计算设备202。在一个示例中,模块102的功能的全部或一部分功能可以由计算设备202、服务器206和/或任何其他合适的计算系统执行。如将在下文更详细描述的,图1的模块102中的一个或多个模块在通过计算设备202和/或通过服务器206的至少一个处理器执行时,使计算设备202和/或服务器206能够控制对外围设备220的访问。例如并且如将在下文中更详细描述的,模块102中的一个或多个模块可使得计算设备202和/或服务器206使用图2叙述方法权利要求的步骤。

计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。例如,计算设备202可包括运行客户端侧安全软件的端点设备(例如,移动计算设备)。计算设备202的附加示例包括但不限于膝上型计算机、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、智能车辆、智能包装(例如,主动或智能包装)、游戏控制台、所谓的物联网设备(例如,智能设备等)、以上各项中的一个或多个的变型或组合、和/或任何其他合适的计算设备。

服务器206通常表示能够促进对远程计算设备202的访问的任何类型或形式的计算设备。服务器206的附加示例包括但不限于,被配置为运行某些软件应用程序和/或提供各种安全、web、存储和/或数据库服务的安全服务器、应用服务器、web服务器、存储服务器和/或数据库服务器。尽管在图2中示出为单个实体,但服务器206可以包括和/或表示彼此协同工作和/或操作的多个服务器。

网络204通常表示能够促进通信或数据传输的任何介质或架构。在一个实施方案中,网络204可促进计算设备202与服务器206之间的通信。在该示例中,网络204可以使用无线和/或有线连接来促进通信或数据传输。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、以上各项中的一个或多个的各部分、以上各项中的一个或多个的变型或组合、和/或任何其他合适的网络。

图3是用于控制对外围设备220的访问的示例性计算机实现的方法300的流程图。图3中所示的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,该计算系统包括图1中的系统100、图2中的系统200、和/或以上各项中的一个或多个的变型或组合。在一个示例中,图3中所示的步骤中的每一个都可以表示算法,其结构包括多个子步骤和/或由多个子步骤表示,该多个子步骤的示例将在下面更详细地提供。

如图3所示,在步骤302处,本文所述的一个或多个系统可接收与尝试访问外围设备220的过程相关的I/O请求126。例如,作为图2中的计算设备202的一部分的接收模块104可接收由寻求访问外围设备220的用户模式应用调用的I/O请求。

如本文所用,术语“I/O请求”一般来讲是指可执行文件尝试访问外围设备220作出的请求。I/O请求的示例包括但不限于来自与外围设备220通信的应用的请求。I/O请求可包括由用户模式应用作出的请求,并且在某些情况下,该请求由应用编程接口(API)函数传递到内核模式I/O管理器。此类I/O请求可包括已由I/O管理器(诸如I/O请求分组(IRP))针对外围设备驱动器进行修改、封装或翻译的请求。I/O请求还可包括经由文件系统对设备驱动器进行的系统调用或操作调用。

本文所述的系统可执行步骤302,使得接收模块104可以多种方式从请求过程216接收I/O请求。

在一个示例中,如图4所示,接收模块104可在计算设备400中实现,其中接收模块104被配置为经由操作系统API 404和I/O管理器406从请求过程216接收IRP。在某些此类实施方案中,请求过程216在用户模式下启动I/O请求并通过调用操作系统API 404的适当函数来发出I/O请求,继而将I/O请求传递到内核模式I/O管理器406。I/O管理器406将I/O请求转换成IRP,其为将I/O请求描述为适合于设备驱动器的数据结构并被传递到接收模块104。

在另一个示例中,如图5所示,接收模块104可在计算设备500中实现,其中接收模块104被集成到用于处理来自用户模式操作系统API 504的I/O请求的I/O管理器506中。在某些此类实施方案中,请求过程216在用户模式下启动I/O请求并通过调用操作系统API504的适当函数来发出I/O请求,继而将I/O请求传递到包括接收模块104的内核模式I/O管理器506。

在图6所示的另一个示例中,接收模块104可在缺少I/O管理器的计算设备600(诸如基于Linux的设备)中实现。在一些此类实施方案中,请求过程216启动I/O请求,操作系统内核经由文件系统604将请求映射到接收模块104。

在步骤304处,本文所述的一个或多个系统可确定过程216的指示过程216是否被允许获得对外围设备220的访问的访问状态128,访问状态128基于过程216的内容属性218。在一些实施方案中,访问状态128可通过基于指示过程216是否应被允许访问外围设备220的一个或多个预定义规则来评估内容属性218来确定。在一些实施方案中,访问状态128可基于来自具有授权准许或拒绝对外围设备220的访问的用户的输入来确定,例如其中输入包括对过程216是否应被允许访问外围设备220的指示。

例如,确定模块106可确定所尝试的访问请求对于特定实体是异常的。如本文所用,术语“异常”一般来讲是指满足与统计、预期和/或预测基线或正常水平的异常或偏差的统计、分析和/或预测量度(例如,阈值水平)的动作。另外,如本文所用,术语“内容属性”一般来讲是指过程216的任何属性,安全性或预测分析可确定该属性与检测满足与统计、预期和/或预测基线或正常水平的异常或偏差的统计、分析和/或预测量度(例如,阈值水平)的动作相关。此外,如本文所用,术语“访问状态”一般来讲是指指示过程216是否被准许或拒绝访问外围设备220的任何值、平面、得分或测量结果。

确定模块106可以多种方式确定所尝试的访问请求是异常的并相应地设置访问状态128。在一些示例中,确定模块106可通过计算所尝试的动作被估计为异常的程度来确定所尝试的动作对于特定实体是异常的。在另外的示例中,确定模块106可通过确定所计算的程度满足阈值来进一步确定所尝试的动作对于特定实体是异常的。例如,确定模块106可建立或定义用作将动作分类为例行的或异常的阈值的偏差水平(例如,标准偏差)。

在一些示例中,确定模块106可将上限和/或下限建立为限定任何一阶、二阶和/或n阶值的正常范围。这些值可包括计数(例如,尝试访问特定文件或资源集的计数、登录尝试的计数、不同网络设备的计数和/或向一个或多个网络或外围设备发出的命令的计数)、一天中的次数、一周中的天数、日历天数和/或这些值的二阶量度(例如,在时间方面的速率)。确定模块106可将上限和/或下限基于手动设置、管理员设置、预定义值、默认值、特定实体对先前行为的统计分析和/或一个或多个其他实体对先前行为的统计分析(例如,与特定实体相当的其他实体,诸如具有相同类别、类型、品牌和/或功能的其他网络设备,以及诸如在组织、管理特权水平、位置和/或办公室内具有相同或类似角色的其他用户)。

在步骤306处,如果访问状态128指示过程216不被允许访问外围设备220,则本文所述的一个或多个系统可通过从虚拟外围设备122启动虚拟外围输出124来对I/O请求126进行响应。在一些实施方案中,本文所述的一个或多个系统还可通过向对外围设备具有授权的用户产生过程216已被拒绝访问外围设备122的警报来作出响应。在一些实施方案中,虚拟外围输出124可包括指示过程216的访问状态128的信息。在一些实施方案中,虚拟外围输出124可包括指示过程216是否与外围设备122兼容的信息。

如本文所用,术语“虚拟外围设备”一般来讲是指可由过程诸如过程216访问并仿真物理外围设备220的可执行资源(例如,驱动器、方法、函数和/或过程)的集合。同样如本文所用,术语“虚拟外围输出”一般来讲是指以适于仿真物理外围设备220的输出的格式从虚拟外围设备122传输的任何输出信号或消息。

如本文所用,术语“外围设备”一般来讲是指可由过程访问以从该过程接收输入和/或向该过程发送输出的计算机设备的任何内部或外部部件。

在一个示例中,如图7所示,虚拟外围设备122可在计算设备700中实现,其中虚拟外围设备122被体现为虚拟网络摄像头722。虚拟网络摄像头722被配置为响应于来自过程216的I/O请求126和另外后续I/O请求126而产生视频流分组724,而不丢弃任何I/O请求126。视频流分组724用作虚拟外围输出124的示例。视频流分组724可包含表明过程216已被拒绝访问实际物理网络摄像头732的配置消息。消息还可任选地包括关于访问被拒绝的原因的另外信息,诸如缺乏许可或兼容性错误。可随后将消息显示给运行过程216而不是来自实际网络摄像头732的视频流的用户。在一个示例中,虚拟网络摄像头722可使用基于微软内核流提供程序类驱动器来托管虚拟网络摄像头的滤波驱动器来实现。

在一个示例中,如图8所示,虚拟外围设备122可在计算设备800中实现,其中虚拟外围设备122被体现为虚拟音频卡822。虚拟音频卡822被配置为响应于来自过程216的I/O请求126和另外后续I/O请求126而产生音频流分组824,而不丢弃任何I/O请求126。音频流分组824用作虚拟外围输出124的示例。音频流分组824可包含表明过程216已被拒绝访问来自实际音频卡832的音频输出的配置消息。消息还可任选地包括关于访问被拒绝的原因的另外信息,诸如缺乏许可或兼容性错误。可随后将消息显示给运行过程216而不是来自实际音频卡832的音频流的用户。

如上所述,本文所述的系统和方法可通过在向设备驱动器发送请求之前接收对外围设备的访问的I/O请求来控制对计算机外围设备的访问。本文所述的系统和方法可例如基于过程的属性和/或来自外围所有者或对外围设备具有授权的其他用户的输入来确定寻求对外围设备的访问的过程是否应被准许此类访问。如果确定访问不应被准许,则I/O请求仍通过对仿真所请求外围设备的外围设备的虚拟版本的访问作出响应来处理。另外,过程将以预期作为来自所请求外围设备的输出的格式从虚拟外围设备接收虚拟输出。虚拟外围设备可继续利用虚拟输出对来自请求过程的后续I/O请求进行响应。虚拟输出可包括适于通知与过程相关联的用户对外围设备的访问被拒绝的信息,并且可包括关于访问被拒绝的原因的信息。这使得与过程相关联的用户能够理解被拒绝访问的原因,而不是像仅丢弃I/O请求那样只看到连接错误。

图9是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算系统910的框图。例如,计算系统910的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个步骤(诸如图3中所示的步骤中的一个或多个步骤)和/或作为用于执行其的装置。计算系统910的全部或一部分也可执行本文描述和/或示出的任何其他步骤、方法或过程和/或作为用于执行这些步骤、方法或过程的装置。

计算系统910广义地表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统910的示例包括但不限于:工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配置中,计算系统910可包括至少一个处理器914和系统存储器919。

处理器914通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器914可接收来自软件应用程序或模块的指令。这些指令可使处理器914执行本文描述和/或示出的示例性实施方案中的一个或多个功能。

系统存储器916通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器916的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。虽然并不是必需的,但在某些实施方案中,计算系统910可包括易失性存储器单元(诸如例如系统存储器916)和非易失性存储设备(诸如例如主存储设备932,如下文详细地描述的)两者。在一个示例中,图1的模块102中的一个或多个模块可被加载到系统存储器916中。

在一些示例中,系统存储器916可存储和/或加载操作系统940以供处理器914执行。在一个示例中,操作系统940可包括和/或表示管理计算机硬件和软件资源和/或向计算系统910上的计算机程序和/或应用程序提供公共服务的软件。操作系统940的示例包括但不限于LINUX、JUNOS、MICROSOFT WINDOWS、WINDOWS MOBILE、MAC OS、APPLE IOS、UNIX、GOOGLE CHROME OS、GOOGLE ANDROID、SOLARIS,以上各项中的一个或多个的变型,和/或任何其他合适的操作系统。

在某些实施方案中,除了处理器914和系统存储器916之外,示例性计算系统910还可包括一个或多个部件或元件。例如,如图9所示,计算系统910可包括存储器控制器918、I/O控制器920和通信接口922,其中的每个都可经由通信基础结构912互连。通信基础结构912通常表示能够促进计算设备的一个或多个部件之间的通信的任何类型或形式的基础结构。通信基础结构912的示例包括但不限于通信总线(诸如工业标准体系结构(ISA)、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。

存储器控制器918通常表示能够处理存储器或数据或控制计算系统910的一个或多个部件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器918可经由通信基础结构912来控制处理器914、系统存储器916和I/O控制器920之间的通信。

I/O控制器920通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器920可控制或促进计算系统910的一个或多个元件之间的数据传输,这些元件诸如处理器914、系统存储器916、通信接口922、显示适配器926、输入接口930和存储接口934。

如图9所示,计算系统910也可以包括至少一个显示设备924,该显示设备经由显示适配器926联接到I/O控制器920。显示设备924通常表示能够以可视的方式显示由显示适配器926转发的信息的任何类型或形式的设备。类似地,显示适配器926通常表示被配置为转发来自通信基础结构912(或来自帧缓冲器,如本领域中已知的)的图形、文本和其他数据以在显示设备924上显示的任何类型或形式的设备。

如图9所示,示例性计算系统910还可包括经由输入接口930联接到I/O控制器920的至少一个输入设备928。输入设备928通常表示能够向示例性计算系统910提供输入(由计算机或人生成的输入)的任何类型或形式的输入设备。输入设备928的示例包括但不限于:键盘、指向设备、语音识别设备、以上各项中的一个或多个的变型或组合、和/或任何其他输入设备。本文所述的外围设备220及其示例也用作输入设备928的示例。

除此之外或另选地,示例性计算系统910可包括附加I/O设备。例如,示例性计算系统910可以包括I/O设备936。在该示例中,I/O设备936可包括和/或表示促进与计算系统910的人机交互的用户界面。I/O设备936的示例包括但不限于:计算机鼠标、键盘、监视器、打印机、调制解调器、相机、扫描仪、麦克风、触摸屏设备、以上各项中的一个或多个的变型或组合、和/或任何其他I/O设备。

通信接口922广义地表示能够促进示例性计算系统910与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口922可以促进计算系统910与包括附加计算系统的专用或公共网络之间的通信。通信接口922的示例包括但不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口922可经由与网络诸如互联网的直接链路来提供与远程服务器的直接连接。通信接口922也可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接地提供此类连接。

在某些实施方案中,通信接口922还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算系统910与一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口922还可允许计算系统910参与分布式或远程计算。例如,通信接口922可接收来自远程设备的指令或将指令发送到远程设备以供执行。

在一些示例中,系统存储器916可存储和/或加载网络通信程序938以供处理器914执行。在一个示例中,网络通信程序938可包括和/或表示使计算系统910能够与另一计算系统(图9中未示出)建立网络连接942和/或通过通信接口922与其他计算系统通信的软件。在该示例中,网络通信程序938可引导经由网络连接942发送到另一个计算系统的输出流量的流。除此之外或另选地,网络通信程序938可结合处理器914引导对经由网络连接942从另一个计算系统所接收的输入流量的处理。

尽管未在图9中以这种方式示出,但网络通信程序938可另选地存储和/或加载在通信接口922中。例如,网络通信程序938可包括和/或表示由结合在通信接口922中的处理器和/或专用集成电路(ASIC)执行的软件和/或固件的至少一部分。

如图9所示,示例性计算系统910还可包括主存储设备932和经由存储接口934联接到通信基础结构912的备份存储设备933。存储设备932和933通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备932和933可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口934通常表示用于在存储设备932和933与计算系统910的其他部件之间传输数据的任何类型或形式的接口或设备。在一个示例中,图1的[数据存储设备120]可存储和/或加载在主存储设备932中。

在某些实施方案中,存储设备932和933可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备932和933还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统910内的其他类似的结构或设备。例如,存储设备932和933可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备932和933还可以是计算系统910的一部分,或者可以是通过其他接口系统进行访问的单独的设备。

可将多个其他设备或子系统连接到计算系统910。相反地,无需图9中示出的所有部件和设备都存在,也可以实践本文描述和/或示出的实施方案。上文提及的设备和子系统也可以通过不同于图9所示的方式进行互连。计算系统910也可以采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个实施方案可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括而不限于:传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,例如,硬盘驱动器、带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。

可以将包含计算机程序的计算机可读介质加载到计算系统910中。然后,可以将存储在计算机可读介质上的计算机程序的全部或一部分存储在系统存储器916和/或存储设备932和933的各个部分中。当由处理器914执行时,加载到计算系统910中的计算机程序可以使处理器914执行本文描述和/或示出的示例性实施方案中的一个或多个的功能和/或作为用于执行其的装置。除此之外或另选地,可在固件和/或硬件中实现本文描述和/或示出的示例性实施方案中的一个或多个实施方案。例如,计算系统910可被配置为适于实施本文所公开的示例性实施方案中的一个或多个实施方案的专用集成电路(ASIC)。

图10为示例性网络架构1000的框图,其中客户端系统1010、1020和1030以及服务器1040和1045可以联接到网络1050。如上详述,网络架构1000的全部或一部分可以单独地或与其他元件结合地来执行本文所公开的步骤中的一个或多个步骤(诸如图3中所示的步骤中的一个或多个步骤)和/或作为用于执行其的装置。网络架构1000的全部或一部分还可以用于执行本公开中阐述的其他步骤和特征和/或作为用于执行其的装置。

客户端系统1010、1020和1030通常表示任何类型或形式的计算设备或系统,诸如图9中的示例性计算系统910。类似地,服务器1040和1045通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络1050通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或互连网。在一个示例中,客户端系统1010、1020和/或1030以及/或者服务器1040和/或1045可包括图1的系统100的全部或一部分。

如图10所示,一个或多个存储设备1060(1)至1060(N)可直接附接到服务器1040。类似地,一个或多个存储设备1070(1)至1070(N)可直接附接到服务器1045。存储设备1060(1)至1060(N)和存储设备1070(1)至1070(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备1060(1)至1060(N)和存储设备1070(1)至1070(N)可表示被配置为使用各种协议(诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS))与服务器1040和1045进行通信的网络连接存储(NAS)设备。

服务器1040和1045也可连接到存储区域网络(SAN)构架1080。SAN构架1080通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或架构。SAN构架1080可以促进服务器1040和1045与多个存储设备1090(1)-(N)和/或智能存储阵列1095之间的通信。SAN构架1080还可经由网络1050以及服务器1040和1045以这样的方式促进客户端系统1010、1020和1030与存储设备1090(1)-(N)和/或智能存储阵列1095之间的通信:设备1090(1)-(N)和阵列1095呈现为客户端系统1010、1020和1030的本地附接设备。与存储设备1060(1)至1060(N)和存储设备1070(1)至1070(N)相同,存储设备1090(1)至1090(N)和智能存储阵列1095通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。

在某些实施方案中,并且参照图9的示例性计算系统910,通信接口(诸如图9中的通信接口922)可以用于在每个客户端系统1010、1020和1030与网络1050之间提供连接性。客户端系统1010、1020和1030能够使用例如web浏览器或其他客户端软件来访问服务器1040或1045上的信息。此类软件可允许客户端系统1010、1020和1030访问由服务器1040、服务器1045、存储设备1060(1)至1060(N)、存储设备1070(1)至1070(N)、存储设备1090(1)至1090(N)或智能存储阵列1095托管的数据。尽管图10示出使用网络(诸如互联网)来交换数据,但本文描述和/或示出的实施方案不仅限于互联网或任何特定的基于网络的环境。

在至少一个实施方案中,本文所公开的示例性实施方案中的一个或多个示例性实施方案的全部或一部分可被编码为计算机程序并加载到服务器1040、服务器1045、存储设备1060(1)至1060(N)、存储设备1070(1)至1070(N)、存储设备1090(1)至1090(N)、智能存储阵列1095或它们的任何组合上并被其执行。本文所公开的示例性实施方案中的一个或多个示例性实施方案的全部或一部分也可被编码为计算机程序,存储在服务器1040中,由服务器1045运行,以及通过网络1050分发到客户端系统1010、1020和1030。

如上详述,计算系统910和/或网络架构1000的一个或多个部件可以单独地或与其他元件结合地来执行用于控制对外围设备的访问的示例性方法的一个或多个步骤和/或作为用于执行其的装置。

虽然上述公开内容使用特定框图、流程图和示例阐述了各种实施方案,但每个框图部件、流程图步骤、操作和/或本文描述和/或例示的部件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他部件内的部件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他架构来实现相同功能。

在一些示例中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础结构即服务等)可通过web浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。

在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个软件模块可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一个或多个模块还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。

根据各种实施方案,图1中的示例性系统100的全部或一部分可在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,虚拟机监控程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或另选地,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。

在一些示例中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,包括例如对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、位置和移动数据(例如,由全球定位系统、陀螺仪、加速度计等提供的)、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序)等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。

此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据和/或产生被一个或多个信息管理系统使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。

在一些实施方案中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据和/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全系统的示例可包括而不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等等。

根据一些示例,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分、与一个或多个端点安全系统通信和/或受一个或多个端点安全系统保护。如本文所用,术语“端点安全”可指保护端点系统免遭未经授权以及/或者非法使用、访问和/或控制。端点保护系统的示例可包括而不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。

本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一个或多个步骤,或者除了所公开的那些步骤之外还包括附加步骤。

虽然本文已经在全功能计算系统的上下文中描述和/或示出了各种实施方案,但这些示例性实施方案中的一个或多个实施方案可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个实施方案。

此外,本文所述的模块中的一个或多个模块可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。除此之外或另选地,本文所述模块中的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。

提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明实质和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。

除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或部件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“…中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于图形设计的多视图母版

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类