动态控制一个网络设备的系统的制作方法

文档序号:7580096阅读:270来源:国知局
专利名称:动态控制一个网络设备的系统的制作方法
技术领域
本发明要求名称为“动态控制一个网络代理的系统”(″Systemfor Dynamically Controlling a Network Proxy,″)的美国临时申请60/042071(由Robert C.Knauerhase等人于1997年3月25日申请,并转让给英特尔公司)的权益,其公开的内容作为参考包括在本申请中。
本发明的背景发明领域本发明总的涉及计算机网络领域,更具体地,涉及将一个设备作为一个网络代理进行配置以响应动态输入执行一个预定的动作的方法和装置。
相关技术众所周知,可以将一个网络代理或代理服务器作为一个中间设备布置在一个或多个客户计算机和一个诸如因特网的外部网络之间。在Ian S.Graham所著的HTML Source BookA Complete Guide to HTML3.0 403(1996年第2版)中已基本上描述了网络代理。然而大多数现有的网络代理缺乏命令处理或者动态配置的能力。网络代理通常使用静态控制面板和例如存储在诸如“.INI”文件或者MS-Windows注册项中的设置进行预先配置。只要该网络代理仍在运行,这些设置就保持不变。而且,这种网络代理缺乏动态接收和执行通常进行网络代理的重新配置的命令或者指令的能力。这是因为通常就是将网络代理作为一个管道使用。例如,用于环球网(WWW)接入的网络代理简单地将从一个客户计算机接收的HTTP请求传送给能够服务该请求的一个服务器计算机。同样地,也简单地将网络代理响应这一请求从该服务器计算机接收的内容传送给该请求客户计算机。换句话说,该网络代理并不查看通过它传送的内容。
考虑到现有技术的上述限制,因此需要一种能够对传送到其上的信息进行操作的网络代理,无论这种信息是嵌入在从一个客户计算机发出的请求中的命令,还是由一个服务器计算机提供的内容。尽管网络代理的这种动态控制是理想的,期望广阔的因特网的基础结构迅速改变以适应这一新的功能是不现实的。为此,希望以一种方式实现这一新的功能,该方式不要求改变现有的客户计算机或服务器计算机。
发明概述本发明涉及用于动态控制一个网络代理的系统,方法和设备。例如可以使用多种实施例动态进行网络的重新配置,以改变网络代理的操作参数,以及在将网络内容传送给客户机设备之前将其进行代码转换。
根据一个特定的实施例,一个动态可控制的网络设备包括一个分析器和一个服务提供器。该分析器包括响应从该网络设备接收的一个外部输入所分析出的命令选择性地调用该服务提供器的指令。
附图的简要描述

图1是示出根据本发明的一个实施例的一个动态可控制的网络设备的一个示意图。
图2是本发明的一个实施例的一个示意图,其中将一个动态可控制的网络设备实现为一个网络代理。
图3是本发明的一个实施例的一个示意图,其中将一个动态可控制的网络设备实现为一个变码服务器。。
图4是根据本发明的一个实施例的一种动态控制一个网络设备的方法的一个示意图。
详细描述根据本发明的第一个实施例,如图1所示出的,提供了一个装置,其中通过该装置,指示一个网络设备2(其可以是配置成以另一个计算机的名义用于网络事务处理的计算机)基于一个来自外部的输入以一种特定的方式工作。这种输入可以源自例如一个系统管理员。将网络设备2配置成对通过它的网络业务进行检查。在某些实例中,网络设备2可以拦截命令,并采取某些预定的响应动作。在其他实例中,网络设备2可以基于它接收到的内容的特征(诸如一个数据类型或者MIME(多用途因特网邮件扩展)类型)采取某些动作,这种动作可以包括例如设置网络设备2的操作参数,诸如一个高速缓冲存储器的大小;网络设备2的远程管理,诸如检索/清除日志文件,获得系统状态信息,以及重新启动网络设备2;以及发布软件的升级。
在这一实施例中,网络设备2包括一个控制模块4,该模块具有一个分析器6和多个业务提供器8。控制模块4可以例如实现为安装在网络设备2中的一个软件模块。分析器6被配置成根据控制模块4接收的外部输入进行动作,诸如对于由一个客户设备产生的网络目标的请求,或者对由一个网络服务器设备提供的请求的回答。在这一特定的实施例中,分析器6根据一个预定的选择准则,负责有选择地调用一个或多个业务提供器8。该预定的选择准则可以例如是一个嵌入在一个请求中的一个命令,一个所接收的请求或数据目标的特征,网络设备2自身的一个条件,前者的组合等等。
根据本发明的另一个实施例,其如图2所示出的,可以将一个动态可控制的网络设备实现为一个网络代理。一个网络代理或者代理服务器通常与所谓的“防火墙”软件结合使用以防止通过因特网对一个LAN(局域网)的未授权的使用。防火墙通常安在一个将LAN连接到外部世界的网关计算机上,该防火墙限制源自外部的网络分组进入局部网络,从而保护LAN防止诸如未授权访问等灾难。然而,该防火墙也防止网络的用户直接访问诸如Web的外部资源。通常使用网络代理来解决这一缺点。见Graham的文章(第403页)。
网络代理通常配置成自由接入内部LAN资源和外部资源,并且可以安全地将数据来回传过防火墙。然后通过配置用户的Web浏览器来引用网络代理,而不是外部目标服务器,可以将用户安全地(尽管是间接地)接入Web资源。在使用Web浏览器来从防火墙的外部检索信息时,它将一个请求发送给网络代理,该网络代理然后完成该请求,并且将结果返回给该请求者。Id.
现在参见图2,根据这一实施例,一个动态的可控制的网络代理34管理数据从因特网18到一个网络客户机12的传输。网络客户机12和网络代理34可以是任何具有适当的数据通讯能力和处理能力的任何计算机。网络客户机12通过一个客户/服务器通讯链路14向网络代理34传送对于信息的请求和从网络代理34接收信息。客户/服务器通讯链路14可以包括例如一个所谓的使用例如POTS(普通老式电话业务)拨号技术或者无线连接的“慢网络”。替代方案是,客户/服务器通讯链路14可以包括一个所谓的诸如LAN或WAN(广域网)的“快网络”,该网络能够以比慢网络可能有的速度更快的速度(例如5到10倍)运行。这些接入方法的组合也是可能的。例如网络客户机12可以使用一个POTS或者无线拨号连接到一个由一个ISP(因特网业务提供商)维护的一个调制解调器堆,其又通过一个LAN连接到一个网络代理34。网络代理34通过服务器/网络通讯链路16与因特网18上的计算机进行通讯,该链路可以包括在本技术中公知的任何适当的通讯介质。服务器/网络通讯链路16的连接通常比客户机/服务器通讯链路14更快。
网络代理34例如可以实现为一个网络服务器的一部分,作为与一个网络服务器通讯的一个独立的计算机,或者甚至作为一个计算机的分布式系统。网络代理34例如可以连接到因特网18上的一个网络服务器(未示出),一个ISP的网络,一个企业网,或任何地方,并且向多个用户提供获得因特网18上驻留的内容的方式。网络代理34明显不同于公知的网络代理,其通常只是向外部因特网资源请求和自外部因特网资源接收响应的通道。这里,网络代理34不仅检查这种请求和响应,而且可以通过例如动态重新配置一个或者多个操作参数根据请求中的命令进行工作。
现在参见图3,根据本发明的又一实施例,动态可控制的网络设备可以实现为一个变码服务器34,该变码服务器包括一个变码器20,该变码器20包括一个分析器22和多个变码业务提供器24。分析器22被配置成对变码器20接收的数据进行操作,诸如对于由一个客户机设备产生的一个网络目标的请求或者对由一个内容服务器设备提供的请求的回答。在这一特定的实施例中,分析器22根据一个预定的选择准则负责有选择地调用一个或多个变码业务提供器24。如图所示出的,变码服务器34可以包括一个HTTP(超文本传输协议)远程代理36,该远程代理能够通过服务器/网络通讯链路16接入因特网18。HTTP远程代理36使用变码器20能够在将从因特网18接收的内容返回到一个请求网络客户机12之前对其进行变码(例如增加,改变和/或删除)。
现在更仔细地分析图3的实施例,分析器22管理从变码服务器34到网络客户机12传送的数据的变码。为此,分析器22根据一个预定的选择准则控制变码业务提供器24以选择性地变码内容。例如一个或多个变码业务提供器24可以提供压缩和/或缩放不同类型的数据内容(诸如图象,视频或HTML(超文本标记语言))的能力。如下面将要进一步解释的,也可以提供一个或多个变码业务提供器24以根据包含在由变码服务器34接收的一个请求或者一个数据目标中包含的一个命令或者其他信息,或者是由变码服务器34确定的任一其他信息,以实施这里所描述的动态控制功能。
如图3所示,变码服务器34也可以包括一个由一个服务器侧的高速缓冲存储器接口28管理的服务器侧的高速缓冲存储器30。服务器侧的高速缓冲存储器30可用于存储内容的原始版本和变码后的版本,用于以后传输到网络客户机12,而不需要从因特网18重新检索该内容或重新变码该内容。
将变码服务器34通过客户机/服务器通讯链路14连接到网络客户机12。网络客户机12包括一个浏览器32,诸如网景公司的NetscapeNavigator v.3.0浏览器(尽管本发明不限于这一方面),该浏览器管理向用户的数据显示。在这一实施例中,网络客户机12是一个“非使能的”,这意味着没有专业化的变码软件要预先加载到网络客户机12。
分析器22可以包括一个相当简单的一致的到HTTP远程代理36的接口,并且可以提供一个用于动态控制变码服务器34和/或用于变码由HTTP远程代理36接收的数据的API(应用编程接口)。分析器22管理一个或者多个变码业务提供器24,其通过一个公共SPI(业务提供器接口)被接入。在这一特定的实施例中,分析器22被设计成与该窗口开放系统体系结构(WOSA)一致,并且可以实现为一个Win32 DLL(动态连接库)。在Readings on Microsoft Windows and WOSA(Microsoft Corp.1995)所描述的WOSA体系结构允许将另外的变码业务提供器24动态加入到该系统中以提供新的特征,诸如新的或改进的变码算法,同时不要求改变或者重新测试该系统中的其他软件部件。这一特征在变码服务器34也与“所使能的”安装了专业化的变码软件的网络客户机进行交互时也极其有用。有利的是,变码服务器34可以足够灵活地配置以随时与非使能的和使能的网络客户机进行交互。
象分析器22一样,服务器侧高速缓冲存储器接口28可以仿照一个标准的获得/设置(Get/Set)接口进行制造。实质上,服务器侧高速缓冲存储器30“拥有”所有的被高速缓存的目标,其中它管理这些目标的特性和存储,并且可以使任何非锁定的目标在任何时候无效;然而,任一给定的被高速缓存的目标的实际格式只为分析器22和其相关的变码业务提供器24所知。因此,为了数据的完整性和变码效率的目的,所有对于这一实施例中的服务器侧高速缓冲存储器30的接入都通过分析器22。
在这一特定的实施例中,分析器22包括下列调用GetObject(URL,InParams,&Outparams,&OutStream,…);GetScaledObject(URL,InParams,&OutParams,&OutStream,Stage,…);PutObject(URL,InParamStruct,&InStream,&OutParams,&OutStream,…)。
分析器22使用这些调用以管理向网络客户机12提供所请求的内容。
GetObject()调用用于服务非使能的客户机请求,并且返回一个特定的超文本目标的一个非变码(即原始)的版本。在这一实施例中,变码服务器34假设每一HTTP请求具有一个唯一的线程,该线程可以被阻塞直到该请求被满足。相应地,该GetObject()调用将阻塞,直到它返回该所请求的数据流或者指示失败的原因(例如目标不存在)。为了兼容的原因,这一返回一个所谓的标准的超文本目标的能力是有利的,其允许本发明的实施例与现有的不包括支持某些变码功能(例如先进的数据压缩)的浏览器一起使用,并且允许用户选择性地检索非变码的版本。
GetScaledObject()调用类似于Getobject(),并且也用于从服务器侧高速缓冲存储器30请求一个目标;然而,它加入了对请求该目标的一个特定版本的支持,诸如一种高质量的再现。与传统的高速缓存代理不同,变码业务提供器24可以使用服务器侧高速缓冲存储器30来存储一个目标的几个不同的版本,以支持具有不同的通讯和/或表示能力的客户机。从而,一个传统的″Stage″参数可用于指示将该高速缓存的目标的哪一版本返回给网络客户机12。在配置变码业务提供器24以缩放网络内容的情况下,可以使用这一参数请求一个具有比如一个缺省缩放质量的一个高速缓存的目标的一个版本,改进的具有较好质量的版本,或者该最初的非缩放的版本。
在这一实施例中,在网络客户机12请求一个超文本目标的时候,HTTP远程代理36使用GetObject()或者GetScaledObject()调用(根据网络客户机12是否能够接收该缩放的/变码的数据类型)从分析器22检索该超文本目标。如果该超文本目标没有找到,分析器22使用该CreateEntry()调用在服务器侧高速缓冲存储器30创建一项(实际上是一个保存场所)用于该新目标。该新项返回给HTTP远程代理36,后者从因特网18请求该超文本目标。在将该超文本目标的一个数据流返回时,HTTP远程代理36使用PutObject()调用调用分析器22,将该新项和要放入该项中的数据流的句柄传送进该调用中。分析器22根据例如该数据流的内容类型选择一个适当的变码业务提供器24。在这一上下文中,术语内容类型包括一个数据类型,一个HTTP MIME(多用途因特网邮件扩展)类型,一种内容格式等等。该所选择的变码业务提供器24使用一个单独的线程来读取该进入的数据流,将之变码,并且放入服务器侧高速缓冲存储器30的该项中。该当前的线程立即返回给HTTP远程代理36,后者再次调用GetScaledObject()(或者GetObject())。这种情况总是造成高速缓存命中。然后这一线程与在PutObject()中的该单独的线程同时工作,将数据(原始的或变码的)从变码服务器34传送到网络客户机12。
在开始发送一个超文本目标给网络客户机12之前,通过不等待一个超文本目标完全被HTTP远程代理36接收或者将其整体进入到服务器侧高速缓冲存储器30中,可以使用多线程处理来改进变码服务器34的效率。多线程处理的另一好处是分析器12可以有效地处理来自多个网络客户机12的对于同一超文本目标的请求。该超文本目标只须从因特网18检索一次,以及同时可以将适当的版本传输到同样的多个网络客户机12。然而,应当注意的是没有多线程处理也可实现本发明的实施例。
根据图3的实施例,可以动态地控制变码服务器34以进行较广范围的操作,诸如重新配置变码服务器34的操作参数。例如,为了重新配置允许哪些网络设备访问变码服务器34,可以将一个HTTP消息发送到分析器22,使分析器22更新(其自身或者通过变码业务提供器24)由变码服务器34维持的一种安全机制(例如一个有效的网络地址的表)。类似地,可以将一个HTTP消息传送到变码服务器34以对由变码业务提供器24使用的一个或者多个参数进行重新配置,将内容在传送给网络客户机12之前对其进行变码,比如指示变码业务提供器24从通过它的内容中删除所有出现的一个特定的字。使用本发明的实施例所发挥的动态控制的类型的其他例子包括使变码服务器34使用更多(或者更少)的CPU资源用于特定的操作,重新配置高速缓冲存储器30,以及清除高速缓冲存储器30。
为了进一步描述一个动态可控制的网络设备的操作,图4示出了根据本发明的一个实施例的用于动态控制网络设备的一个概括的方法的流程图。处理是由动态可控制网络设备从另一网络设备接收一个输入开始的(步骤20)。在该动态可控制网络设备包括一个网络代理的情况下,这种其他网络设备可能包括一个客户机设备或者一个内容服务器。该动态可控制网络设备然后分析所接收的输入以从中提取出一个命令(步骤30)。假设找到一个命令,该动态可控制网络设备然后根据该命令执行某些预定的动作(步骤40)。例如可以使用这一实施例的方法以提供上述的动态控制功能。
根据本发明的实施例的一个动态可控制网络设备的好处在于不需对现有的网络基础结构进行任何改变。在该网络设备包括一个用于Web事务的网络代理的一个实施例中,例如可以将命令通过标准的到特殊的URL的HTTP“POST”方法发送到该网络代理。相应地,要求仅用来分发代理命令的该客户机软件是一个标准的Web浏览器,除了要求以本领域当前所公知的方式指定一个HTTP代理作为一个目的设备之外对该客户机设备没有特殊的配置要求。另一方面,该网络代理也可以接受来自专业化的客户机软件的命令(如果存在的话)。类似地,该动态可控制网络代理可以自由地与现有的服务器设备进行交互。该代理可以产生关于该客户机的所需要的其自己的表格和状态应答,不需要任何特殊配置的HTTP服务器软件或者CGI(公共网关接口)脚本处理能力。例如,该代理可以产生一个由该客户机浏览器显示的HTML表格。该用户可以填充该表格并且将它提交。该浏览器取得该填充的表格,并且使用该输入创建一个POST,将来自该HTML表格的结果进行通讯。然后,该代理可以根据该POST进行动作,可能产生其自己的状态响应,以便通知用户该输入命令是否工作。这种状态响应然后可由该浏览器显示。使用这种类型的安排,现有的服务器和客户机就可以与该动态可控制网络代理进行交互,其方式和它们与任何其他网络代理交互一样。因此,本发明的实施例可以透明地实现在现有的网络基础结构中,不需要特殊的通讯端口或特殊协议。
本发明的实施例可以例如作为一组位于一个存储介质上的指令进行分布。这一存储介质可能是一个计算机的存储器;一块固件;一个可携带存储设备,诸如一个磁盘或者其他磁存储设备,或者一个CD-ROM;或任何其他公知的用以存储可执行指令的介质。
虽然已经参照从因特网访问数据的实施例描述了本发明,但是本领域的普通技术人员很容易就会认识到该发明可以同样应用于其他网络环境。比如,可以使用本发明的实施例增强一个网络客户机计算机和一个“内部网”之间的数据通讯。一个内部网通常是一个仿照因特网体系结构建立的一个安全的企业网络,并且通常包括用于与诸如因特网的外部网络进行通讯的机制。
上述是本发明的具体实施例的一种详细描述。本发明包括落在本发明的权利要求的字面和精神内的所有替换,修改和变化,以及所要求的客体的代价物。例如,本领域的普通技术人员很容易就会认识到这里所描述的功能可以以事实上能够接收HTTP消息的任何网络设备实现,这些网络设备包括内容服务器和客户机设备。而且,本发明的实施例可以应用于HTTP协议之外的其他通讯协议。本领域的普通技术人员将会从前面的详细描述认识到其他许多替换,修改和变化都是可能的。
权利要求
1.一个动态可控制网络设备,包括一个分析器和一个业务提供器,所述分析器包括响应从所述网络设备接收的一个外部输入中分析出的一个命令用于选择性地调用所述业务提供器的指令。
2.根据权利要求1的网络设备,其中该外部输入包括一个HTTP一致的消息。
3.根据权利要求1的网络设备,其中所述网络设备位于一个客户机和一个服务器之间,所述分析器还包括响应从该客户机接收的一个请求中分析出的一个命令选择性地调用所述业务提供器的指令。
4.根据权利要求1的网络设备,其中所述网络设备位于一个客户机和一个服务器之间,所述分析器还包括响应从该服务器接收的一个数据目标中分析出的一个命令选择性地调用所述业务提供器的指令。
5.根据权利要求4的网络设备,其中所述业务提供器包括在传送所述数据目标至该客户机之前用于变码所述数据目标的指令。
6.根据权利要求1的网络设备,其中所述网络设备位于一个客户机和一个第二网络设备之间,所述分析器还包括响应由所述网络设备从该第二网络设备接收的一个数据目标中分析出的一个命令选择性地调用所述业务提供器的指令。
7.根据权利要求1的网络设备,其中所述业务提供器包括用于重新配置所述网络设备的指令。
8.根据权利要求7的网络设备,其中所述业务提供器还包括用于设置所述网络设备的一个操作参数的指令。
9.根据权利要求1的网络设备,其中所述业务提供器还包括用于管理所述网络设备使用的一个日志文件的指令。
10.根据权利要求1的网络设备,其中所述业务提供器还包括用于从所述网络设备获得状态消息的指令。
11.根据权利要求1的网络设备,其中所述业务提供器还包括用于重新启动所述网络设备的指令。
12.根据权利要求1的网络设备,其中所述网络设备还包括一个网络代理。
13.根据权利要求1的网络设备,其中所述网络设备还包括一个内容服务器。
14.根据权利要求1的网络设备,其中所述网络设备还包括一个客户机设备。
15.一种用于动态控制一个网络设备的方法,其中该网络设备连接到一个第二网络设备,所述方法包括下述步骤从该第二网络设备接收一个输入;从所述输入提取一个命令;以及响应所述提取的命令执行一个动作。
16.根据权利要求15的方法,其中所述接收一个输入的步骤包括接收一个HTTP一致的消息。
17.根据权利要求15的方法,其中所述执行一个动作的步骤包括重新配置该网络设备。
18.根据权利要求17的方法,其中所述接收一个输入的步骤包括接收一个HTML表格的结果。
19.根据权利要求15的方法,其中所述执行一个动作的步骤包括变码一个数据目标和传送所述变码的数据目标到另一设备。
20.一个包括一组由一个网络设备执行的指令的存储介质,其中该网络设备连接到一个第二网络设备,所述指令集包括用于下述动作的指令从该第二网络设备接收一个输入;从所述输入提取一个命令;以及响应所述提取的命令执行一个动作。
21.根据权利要求20的存储介质,其中该存储介质包括一个磁存储设备。
22.根据权利要求20的存储介质,其中该存储介质包括一个连接到该计算机的存储器。
23.根据权利要求20的存储介质,其中该存储介质包括一个光存储设备。
全文摘要
在一个网络设备(2)中实现一个用于动态控制一个网络设备的系统,该网络设备(2)包括一个分析器(6)和一个业务提供器(8)。该分析器(6)包括响应从该网络设备(2)接收的一个外部输入中分析出的一个命令选择性地调用该业务提供器(8)的指令。
文档编号H04L12/24GK1257593SQ98805441
公开日2000年6月21日 申请日期1998年3月20日 优先权日1997年3月25日
发明者R·C·克瑙埃尔哈泽, M·M-H·特索 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1