CN1894667A - 分配服务器资源的***和方法 - Google Patents
分配服务器资源的***和方法 Download PDFInfo
- Publication number
- CN1894667A CN1894667A CNA2004800374841A CN200480037484A CN1894667A CN 1894667 A CN1894667 A CN 1894667A CN A2004800374841 A CNA2004800374841 A CN A2004800374841A CN 200480037484 A CN200480037484 A CN 200480037484A CN 1894667 A CN1894667 A CN 1894667A
- Authority
- CN
- China
- Prior art keywords
- application
- resource
- restriction
- template
- web server
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种用于允许基于web的应用在受控环境中运行的***和方法。具体而言,一种在web服务器上一沙盒环境(sandbox environment)中运行的应用之间分配服务器资源的方法。可拒绝试图超过与应用相关联的模板中所指定的限制的应用访问资源。
Description
技术领域
本发明通常涉及计算机服务器,且更明确地说,涉及在用于回应客户请求的服务器实例之间分配服务器资源。具体而言,本发明涉及用于回应http客户请求的服务器实例之间分配web服务器资源的架构。本发明还涉及用于允许基于web的应用在受控环境中运行的架构。
背景技术
在互联网的万维网(World Wide Web)中,客户机使用超文本传输协议(HTTP)来执行与Web服务器的事务处理,超文本传输协议为一种应用协议,其使用一种称为超文本标示语言(HTML)的标准语言米向用户提供对数据(例如,文本、图形、图像、声音、视频等等)的访问。HTML提供基本格式化,且允许文档将超链接指定到相同或其它服务器上的其它文档。使用统一资源定位符(URL)来指定文档存取方法和文档名称。
最终用户使用客户机上的兼容HTML的web浏览器(例如,Netscape Navigator或Microsoft Internet Explorer)来访问Web页面。用户通过文档的URL来指定文档。接着,客户机向在链接中标识的服务器发出请求,且接收到作为回应的文档,客户机将所述文档显示给用户。
如果信息以静态文件的形式存储在web服务器上,那么很多类型的信息需要比实际更频繁地更新。这导致了web服务器扩展以支持“动态内容”。第一个此类扩展为通用网关接口(Common Gateway Interface,CGI)。CGI为万维网标准,其允许用外部编程脚本或可执行文件来扩展Web服务器的HTML功能。CGI程序通常用于返回动态信息且回应用户通过HTML形式发出的HTTP浏览器请求。
对降低执行独立脚本的***开销的要求导致了脚本执行环境直接集成到web服务器中。ASP(主动服务器页面)、PHP(PHP:超文本预处理器)、Perl和Java环境中的每一者均已经集成到web服务器中,在很大程度上代替了CGI。当请求从客户web浏览器到达时,web服务器判定所请求的内容的类型。在例如图像的静态web页面(其文本不改变)的情况下,web服务器仅使用HTTP协议将文件传送到客户的web浏览器。在动态web页面的情况下,web服务器将URL和其它HTTP请求参数传递到脚本执行环境,其再次通过使用HTTP来执行脚本或程序且将所得数据返回给客户。
互联网服务提供商(ISP)在单个Web服务器上寄存多个组织的网址。然而,多数组织更喜欢使用他们自己的个别化域名,而不是使用ISP的域的子集。ISP可通过使用对多个地址而发出的请求作出回应的多宿主web服务器来为多个域名提供web服务。仅由多宿主服务器服务而不具有专用服务器的web地址称为虚拟主机。
现存服务器的虚拟寄存能力通常相当有限。举例来说,尽管不同客户可具有不同需要且要求不同水平的服务,但在现存的多宿主服务器中,对于每个客户而言,服务所提供的功能通常相同。
Web服务器已经从仅仅寄存网址演化到变成成熟的应用服务器。举例来说,TomcatJSP/Servlet容器技术(Tomcat JSP/Servlet Container technology)可用于在web服务器上寄存Java编程语言应用的执行。Tomcat管理器允许对独立应用进行控制,且Tomcat可支持单个虚拟主机的多个应用。此上下文中的应用为在web服务器上执行的一组函数,其可由发出HTTP请求的web客户用相同或类似URL来调用。
一些现存web服务器提供安全架构,例如基于Java的安全管理器。举例来说,Tomcatweb服务器可接收对服务的请求、判定应用、且动态地设定所述应用所要使用的安全级别。每个安全级别的安全策略可在文本文件中界定,且不同类可赋予不同安全级别。类为有关数据(成分)和在所述数据上操作的函数(方法)的集合。然而,由Java提供的安全特征有限。除限于Java中所写的应用之外,Java架构仅基于对特定功能的访问而提供高级别的防问控制。此外,虽然例如由Java提供的架构控制了应用可能访问的一些类型的资源,但它们不提供用于控制应用可能消耗的资源的类型和数量的通用机制。因此,需要提供更好的方法来限制和分配对服务器资源的访问的服务器应用架构。
发明内容
本发明的***、方法和装置中的每一者均具有几个方面,其中没有任何单个一者单独为形成其所要属性的原因。在不限制由所附的权利要求书所表达的本发明的范畴的前提下,现将简要论述本发明的更突出特征。在考虑此论述后,且尤其在读了题为“具体实施方式”的部分后,将了解本发明的特征如何提供优势,其中包括分配服务器资源,例如网络带宽、内存和CPU时间,并控制对功能的访问。
一个实施例为web服务器***,其包含上面安装有web服务器的服务器计算机和与web服务器交互操作以为来自web浏览器的请求服务的复数个应用。所述***可进一步包含复数个模板,每个模板与一个或一个以上应用相关联,且指定执行此类应用的资源使用限制,以便对不同的应用进行不同的资源使用限制。应用架构可在与web服务器相关联的服务器计算机上运行,且可执行由模板指定的资源使用限制。应用管理接口可为管理员提供函数性以编辑复数个模板并创建新的模板,以在服务器计算机上控制复数个应用的执行。优选地,应用架构通过截取由应用对web服务器发出的函数调用来至少部分地执行资源使用限制。
另一实施例为用于在服务器计算机中分配资源的方法。所述方法包含接收来自客户的对动态内容的web服务器请求。优选地,所述web服务器请求包含URL。用于产生动态内容的应用被标识。优选地,应用的所述标识至少部分地基于所述URL。对应用的模板进行标识。优选地,所述模板使至少一个资源与一限制相关联。应用在虚拟机中执行,所述虚拟机经配置以允许截取资源访问函数调用。截取资源访问函数调用。如果不超过所述限制,那么准许对资源进行访问。对资源使用进行追踪。
另一实施例为用于在服务器计算机中分配资源的方法。所述方法包含接收来自客户的请求。至少部分地基于所述请求来对应用进行标识。对资源与应用特有的限制的至少一个关联进行标识。在虚拟机中执行所述应用,所述虚拟机经配置以限制对如由所述限制所指定的资源的访问。
另一实施例为用于为应用选择替代资源模板的方法。所述方法包含在与应用相关联的第一服务器中对界定至少一个资源上的限制的模板进行标识。将所述相关联的模板与为第二服务器提供的一组可用模板相比较。选择与所述相关联的模板最紧密匹配的可用模板。
另一实施例为用于在服务器计算机中分配资源的***。所述***包含虚拟机模块,其经配置以执行与服务器请求相关联的计算机应用。应用定义模块经配置以用应用来标识至少一个资源模板的映射。参数模板模块经配置以标识与应用相关联的模板,其中所述模板使至少一个资源与一限制相关联。架构模块经配置以截取与所述资源相关联的应用的函数调用,且限制对如由模板的限制所指定的资源的访问。
另一实施例为一种用于分配资源的***,所述资源用于处理到服务器计算机的客户请求。所述***包括用于至少部分地基于所述请求来对应用进行标识的构件;用于对资源与所述应用的限制的至少一个关联进行标识的构件;用于执行所述应用的构件;和用于限制对如由所述限制所指定的资源的访问的构件。
另一实施例为用于在服务器计算机中分配资源的方法。所述方法包含接收信号以起动应用。至少部分地基于所述信号来对应用进行标识。对资源与所述应用所特有的限制的至少一个关联进行标识。在虚拟机中执行所述应用,所述虚拟机经配置以限制对如由所述限制所指定的资源的访问。
附图说明
图1是用于在web服务器中执行服务器资源分配的***的一个实施例的简化方框图。
图2是用于在适合于群集服务器环境的与图1中所描绘的web服务器类似的web服务器中执行服务器资源分配的***的另一实施例的简化方框图。
图3是描绘在如图1中所描绘的***中分配服务器资源的方法的一个实施例的流程图。
图4描绘说明图1的***的一个实施例中的数据的流程的数据流程图。
图5是说明web请求与图1的***的一个实施例之间的关系的简化数据流程图。
图6说明根据图5的方法的实施例中的数据的流程,其中所述实施例经配置以支持PHP脚本语言。
图7是说明用于配置图1的***的一个实施例中所允许的功能的基于web的接口页面的屏幕截图。
图8是说明用于配置图1的***的一个实施例中的资源分配的基于web的接口页面的屏幕截图。
图9是说明用于配置图1的***的一个实施例中的带宽资源分配的基于web的接口页面的屏幕截图。
具体实施方式
以下详细描述针对本发明的某些特定实施例。然而,可以如由权利要求书所界定并涵盖的大量不同方式来实施本发明。在此描述中,参看附图,其中始终以相同数字指示相同部分。
A.概述
可使用在web服务器上运行的单个虚拟机来提供基于web的应用。此类型的***具有若干不同问题。应用可能会调用与其它应用或web服务器相干扰的函数或方法。应用可能耗用过多本地资源或过多网络资源(例如,发送过多消息)。
当多个基于web的应用在一web服务器上运行时,一个应用可能会调用对其它应用有不良影响的函数或方法。举例来说,应用可能删除另一应用的文件或导致web服务器停止运行。Java安全管理器对哪个类可在特定安全政策下执行其方法给出明显控制,但对于其它基于web的应用环境则不存在均等机制。
此外,在一些情况下,简单的阻塞函数或方法太有限制性。通常,必须允许函数或方法的执行,但对所访问的资源的数量或身份有所限制。这些访问限制可能较明显,其中仅允许某些参数值,且其中拒绝使用其它参数值的函数或方法调用。或者,函数或方法可限于在属于应用的资源上操作。
阻塞函数或限制其范畴可能无法完全防止一应用与另一应用干扰。举例来说,如果应用无限期地循环,那么将防止web服务器以满容量为其它应用服务。类似地,如果应用填满了web服务器的存储***,那么将防止其它应用存储数据。服务级别协议(servicelevel agreement)可要求一个应用不能将web服务器的操作削弱到不满足另一应用的协议的约定服务级别的程度。此问题存在于大多数基于web的应用环境中。
对于由第三方创建的应用服务器寄存应用而言,由应用所使用的带宽也是个问题。寄存公司可能希望防止由恶意应用引发的过多通信量(例如垃圾邮件)。对于移动通信而言,由于通信成本的缘故,应用服务器可具有有限带宽以发送消息,且一个应用可使用所有容量,而防止其它应用发送。如果应用服务器的通信为非限制的且其由VASP(增值服务提供商)运行,那么VASP可能必须为由缺陷应用产生的过多通信量付费。
经配置以执行若干不同应用的基于web的虚拟机为其它现存技术的替代物,所述现存技术例如:虚拟寄存;Java安全管理;和以多个web服务器的群集,每个web服务器专用于单个应用。更明确地说,提供沙盒架构以为每个应用分配服务器资源的基于web的虚拟机可具有超越虚拟寄存的几个优势。首先,防止应用彼此干扰,允许作出服务级别保证,这种保证不可能通过虚拟寄存来作出。其次,可防止应用看到彼此的数据,解决了可能防止应用的虚拟寄存看到不同资源的安全问题。
另外,基于web的虚拟机可具有超越群集解决方案的优势,即可在单个web服务器上运行多个应用。这导致硬件节约,以及整个***要求的简化和管理/操作成本的降低。
B.***
如图1中所描绘,根据本发明的***2的一个实施例提供沙盒4,用于与用于为基于web的虚拟机分配服务器资源的web服务器6交互操作。客户web浏览器8通过网络10将web请求通信到服务器计算机12,其中所述客户web浏览器8可寄存在任何电子装置上。服务器计算机12接收web请求,并通过web服务器软件6来处理所述web请求。Web服务器6包含用于标识软件的构件,和用于为所述请求提供动态内容的应用16。Web服务器12可耦合到存储器20。
应了解,虽然***2的一个实施例可包含在单个服务器计算机12上运行的单个web服务器6处理,但本发明也预期具有web服务器处理和服务器计算机12的不同配置的其它实施例。举例来说,在另一实施例中,群集web服务器可包含在多个服务器计算机12上运行的多个web服务器6。如图2中所描绘,web服务器6可共享资源,例如数据库服务器19或由(例如)文件服务器21提供的文件***。优选地,所有web服务器6的负载平衡。***2的实施例可包含多个沙盒4,其经配置以协力控制对共享资源的访问,确保在web服务器6的整个群集上,没有一个应用16超过其资源限制。
图2描绘适合于具有存储器20的群集服务器环境的***2的一个实施例,所述存储器20包含数据库服务器19和文件服务器21。负载平衡器11在一组web服务器6之间分布请求。在所描绘的实施例中,每个服务器计算机12包含一个web服务器6。另外,在此实施例中,一个服务器计算机12包含负载平衡器11;一个服务器计算机12进一步包含文件服务器21;且一个服务器计算机12进一步包含数据库服务器20。在另一实施例中,单个服务器计算机12包含负载平衡器11、web服务器6、文件服务器21和数据库服务器19中的每一者。在另一实施例中,不同服务器计算机12包含图2中的web服务器6、负载平衡器11、文件服务器21和数据库服务器19中的每一者。应了解,web服务器6、负载平衡器11、文件服务器21和数据库19中的每一者均可在任何数目的服务器计算机12之间分布。此外,负载平衡器11可将请求分布到任何数目的web服务器6。
在一个实施例中,多个web服务器6通过连接到文件服务器21来共享单个文件***。在一个实施例中,web服务器6可使用网络文件***(NFS)协议连接到文件服务器21。在另一实施例中,web服务器6可使用服务器消息块(SMB)协议连接到文件服务器21。每个web服务器6上的沙盒4可在整个群集上执行对每个应用16所允许的文件空间的数量的限制。文件空间的数量可由资源模板来判定。多于一个的应用16可共享一资源模板。每个web服务器6上的沙盒4可执行对独立于其它应用16的每个web服务器6上的每个应用16所允许的打开文件的数目的限制。
动态内容可包含由在web服务器6方向上执行软件应用16所产生的任何回应。动态内容可包含由应用16从(例如)计算,即从请求中发送的信息所产生的数据,或从由数据库提供的数据所产生的内容。动态内容还可包含固定的静态数据,其可(例如)存储在文件或数据库服务器19中。此静态数据可包含内容,例如固定标示语言、图形或来自文件或数据库服务器19的任何其它数据。通常,动态内容包含静态内容与在web服务器6的方向上执行的软件代码中所产生的内容的混合。因此,在一个实施例中,当web服务器6判定web请求用于由动态内容web页面提供的内容时,服务器6将所述请求传递到虚拟机模块14上,所述虚拟机模块14执行应用16的脚本。
应用16的脚本可基于(例如)与web请求相关联的URL或虚拟主机而从一组应用脚本中选择,以执行所述web请求。沙盒4可将三种类型的资源限制的任何组合放置在应用16的执行上,所述三种类型的资源限制为:基于功能的资源限制、数量资源限制和带宽资源限制。
应用16优选包含用脚本语言写的一个或一个以上脚本。虚拟机模块14包含用于执行应用14的构件。虚拟机模块14可为由应用16所使用的任何计算机语言的运行时执行环境,以提供(例如)主动web页面内容、无线标示语言(WML)内容、短消息服务(SMS)被动内容或邮件被动内容。计算机语言可包括(例如)Java或例如PHP、Perl或Python的脚本语言。优选地,虚拟机模块执行PHP语言脚本。在一个实施例中,虚拟机模块14可简单地为包含由编译一脚本而引起的脚本或字节代码的应用16的语言解释器。虚拟机模块14经配置以与沙盒4通信,以分配对服务器6的资源的访问。在一个实施例中,可编译并链接沙盒4,作为虚拟机模块14的可执行代码的一部分。
在另一实施例中,为Tomcat web服务器提供沙盒4,以增强Java安全管理器的有限的能力。对要分配的资源实施访问的本地类(例如文件类)可经修改以调用到架构模块42中。在此实施例中,优选在Java中实施架构模块42。
***2的另一实施例可包含在Apache web服务器6上运行的CGI应用16的沙盒4。优选地,为了避免每次执行CGI应用16时起动新操作***过程的无效,可为每个应用16起动虚拟机14。对于在Linux操作***下运行的web服务器而言,用户模式Linux(UML)可用于实施虚拟机14。
在***2的另一实施例中,Apache web服务器用作微软IIS web服务器(Microsoft IISWeb Server)的前端web服务器,以支持ASP基于web的应用环境。对ASP动态内容的任何请求均转发到在虚拟机14中运行的IIS web服务器的实例(优选地,每个应用16各一个)。虚拟机14可根据应用16配置,以控制应用16对资源的访问。
沙盒4可由在服务器计算机上运行的若干软件模块组成。优选地,沙盒4模块与脚本运行时模块14在相同的服务器上运行。在一个实施例中,沙盒4和虚拟机模块14由服务器计算机12连同web服务器16一起来执行。应了解,所述模块中的每一者均通常包含各种子程序(sub-routine)、程序(procedure)、限定语句(definitional statement)和宏。所述模块的每一者均可独立地编译并链接到单个可执行程序中。以下对所述模块中的每一者的描述用于方便描述***的一个实施例的功能。因此,由所述模块中的每一者执行的处理可重新分布到其它模块中的一者;一起组合到单个模块中;或在(例如)可共享动态链接库中可得。优选地,可通过使用与由脚本虚拟机模块14提供的相同的计算机语言,或用于产生虚拟机模块14的相同计算机语言,来产生所述模块。然而,应了解,可通过使用任何计算机语言或环境来产生所述模块,所述任何计算机语言或环境包括通用语言,例如C或C++,或脚本语言,例如PHP、Python、Perl、TCL,或所属领域中的技术人员已知的任何其它语言。
在一个实施例中,沙盒4可包含主架构模块42。架构模块42包含用于限制对如由模板限制所指定的资源的访问的构件。如本文所使用,模板将资源与资源限制或分配之间的一组关联包含在文件或表格中,所述文件或表格因此界定分配给应用的资源。优选地,模板允许对参数进行指定,所述参数例如各种资源的数量或某一功能的可用性的分配。模板可应用到多种不同应用16。
架构模块42配置虚拟机模块14且将资源分配服务提供到所述模块。当调用应用16时,架构模块42与应用定义模块44通信。应用定义模块44为调用的应用16装载沙盒定义。应用定义模块44包含用于使应用16与模板相关联的构件。应用定义模块44可从存储器20装载定义。架构模块42可使用这些定义来选择适当的沙盒参数模板。架构模块42与沙盒参数模板模块46通信以为应用16装载含有特定沙盒资源分配参数的模板。沙盒参数模块46包含用于对应用16的模板进行标识的构件。沙盒参数模块46可从存储器20装载定义。
沙盒4使用可根据应用16而变化的大量配置参数。由于单个web服务器计算机12上可寄存着成百上千的应用16,所以根据应用16来配置所有参数易于产生错误。另外,配置错误可引起安全问题。沙盒4允许对功能制约组、数量资源限制组和带宽限制组进行界定。这些资源限制组由模板来指定。可将每个模板赋予多于一个的应用16。资源模板允许应用16赋予不同类,例如,光、媒介和重资源(heavy resource)使用或可信和不可信应用16。沙盒4的一个实施例提供以下模板种类:功能模板、带宽模板和资源模板。
沙盒参数模板和应用定义两者均可通过应用管理接口模块48来管理。应用管理接口模块48可提供人机接口,其允许web服务器的管理员22对模板进行界定。接口模块48还可提供用户接口以允许管理员界定应用定义。在一个实施例中,应用16可依据拟运行的脚本来界定。另外,应用定义可指定调用所述应用16的IP地址(虚拟主机)和URL。最终,应用定义可将拟由应用16的架构模块42使用的资源、功能和带宽模板联系起来。
在一个实施例中,沙盒架构模块42可通过截取虚拟机模块14中所作函数调用来执行基于功能的资源限制。这些函数可对应于脚本语言函数或类别。优选地,虚拟机模块14可经配置以截取受架构模块42控制的函数调用,以使得控制首先传递到架构模块42。可截取分配或释放资源的函数、访问受限制功能的函数或者发送或接收网络消息的函数。
图3描绘***2的一个实施例中的一组函数指针表,其中虚拟机模块14和架构模块42作为模块在web服务器6内执行。在此实施例中,拟从应用16调用的由脚本虚拟机14提供的所有函数均通过函数指针表50传送。虚拟机模块14中的函数指针表50可含有当应用16调用一特定函数时要执行的代码的地址。不受架构模块42影响的函数指针不做修改,且因此指向所述函数的默认代码,所述代码可常驻于(例如)模块52中。受所述架构影响的函数指针由进入架构模块42的函数表54中的函数指针来代替。架构模块42可替代那些函数,或者在判定应用16是否被分配足够资源以执行原始函数后,经由其指针来调用所述原始函数。
优选地,架构模块42控制一应用16是否可使用由虚拟机模块14提供的每一函数或类别。功能制约可完全阻止应用16使用一些函数或类别。
在一个实施例中,架构模块42还可截取函数或方法以确保应用16仅可使用其自身的资源,例如其自身的文件空间中的文件。这可包含检查函数调用的参数。此类型的资源分配与涉及资源(例如内存)数量的资源分配的不同之处在于监控资源的身份而不是数量。如果应用16试图使用其无权使用的资源,那么架构42可拒绝所述请求或阻止应用16运行。另外,架构模块42可使用所保存的原始函数指针的副本来代表所述应用调用web服务器的函数或方法。
在架构模块42的一个实施例中,截取允许访问耦合到web服务器6的数据库服务器19的函数或方法。以用户名而不是应用自身的名称连接到数据库服务器19的尝试由架构42阻塞,除非信任应用16作出所述尝试。架构模块42可代表应用16提供应用16的数据库密码,从而无需将密码不安全地存储在应用的源代码或数据文件中。
在一个实施例中,多个web服务器6连接到数据库服务器19。数据库服务器19在整个群集上执行对每个应用16所允许的数据库连接的数目的限制。不同应用16可允许不同数目的连接。数据库连接的数目可由资源模板来判定。多于一个的应用16可使用一给定资源模板。
在一个实施例中,当新的函数或类添加到应用环境(例如,通过升级web服务器软件)时,架构模块42默认地禁用对它们的访问。新的函数或类自动添加到由允许功能模板被配置的应用管理接口模块46提供的人机接口。
数量资源限制可包含对应用16可能消耗的服务器资源的数量的限制。这些限制可包括(例如)打开文件的数目、应用16可能消耗的CPU时间的量或应用16可能在执行特定操作上花费的时间的量。举例来说,如果应用16试图同时打开过多文件,那么沙盒4可将适当的错误返回到应用16。或者,沙盒4可经配置以将错误直接返回到web服务器6,藉此应用16终止,且访问冲突页面被返回到客户web浏览器8。如本文关于对函数访问的限制所进行的描述,可通过截取资源访问函数来实施这些资源分配方法。在截取所述函数后,架构模块42对照资源模板中所指定的资源限制来检查实际资源使用。
还可为不与单个函数调用相关联的资源执行数量资源分配。举例来说,对于有时间限制的操作而言,可能必须在某一时间限制内完成一个函数调用或一组函数调用。在一个实施例中,当使用有时间限制的操作时,可在开始操作前在架构模块42中起动计时器,且在操作完成时删除所述计时器。如果计时器在操作完成前期满,那么架构模块42将阻塞操作上的进一步执行,且将返回错误代码或错误消息。架构模块42模板可根据操作指定时间限制,且用于处理整个客户请求。这些参数可根据应用16而配置。
还可分配可消耗服务器6***资源。除静态限制(例如打开文件的数目)之外,架构模块42还可处理随着时间的过去而消耗的资源的分配。
一个实例为CPU时间。每个web客户请求要求在web服务器6上处理,而这会消耗一些CPU时间。架构模块42可监控由应用16消耗的CPU时间,且可将某一时间周期内的消耗与资源模板中所指定的限制相比较。在一个实施例中,如果应用16在所述时间周期期间达到其限制,那么可禁用应用16。可将应用16禁用特定时间或无限期地禁用直到由web服务器管理员重新启用为止。
本文所述的很多资源限制为静态的,即一旦准许对资源进行一定级别的访问,那么访问始终不变,直到由管理员改变为止。如上文所述,沙盒4还可监控可消耗资源的使用且在应用16之间分配所述资源。在一个实施例中,代表由应用16所消耗的资源的令牌存储在架构模块42中的逻辑“存储桶”中。架构模块42监控应用16对资源的使用且从所述应用的存储桶中扣除令牌。当应用的存储桶为空时,架构模块42阻止应用16运行。在一个实施例中,可将存储桶实施为可用于消耗的令牌数目的简单整数计数。
此类资源的一个实例为由应用16消耗的CPU时间。架构模块42可限制分配到给定应用16的可用CPU秒的数目。在一个实施例中,运行所花费的时间中的每一秒均要求一令牌。当应用16已经运行了一秒时,从应用的CPU时间存储桶中消耗一令牌。当存储桶为空时,架构模块42阻止应用16运行。
在一个实施例中,架构模块42可周期性地重新填充资源存储桶,从而允许资源以固定速率被消耗。管理员还可手动重新填充存储桶,从而允许可变速率的消耗。通过监控令牌消耗,可随着时间的过去而追踪资源的使用,且可向应用16的拥有者寄帐单。这些方法允许实施web服务器6的拥有者与应用拥有者之间的不同计费方案。在一个实施例中,可直接基于每资源单位的费用来设定资源的量,且使特定量的资金可用于资源。
第三种类型的约束,即带宽约束,概念上仅仅是数量资源约束的另一种形式。带宽为在运行时虚拟机模块14中可由应用16发起网络通信的速率。沙盒4可将总可用带宽分配给特定应用16。在一个实施例中,将要由应用16发送的消息以一队列摆放。接着,消息可从所述队列中移除且以由沙盒4控制的速率发出。如果应用16超过特定量的时间所允许的速率,那么将达到所述队列的上限,且沙盒4可丢弃进一步消息。
带宽管理可用于阻止应用16发送(发起)过多消息。然而,带宽管理还可用于使有限带宽通信沟道的使用最优化。在一个实施例中,上文所述的排队机构用于向每个应用16提供有保证的最小带宽。向所有应用16保证的最大带宽的总和不应超过web服务器的通信沟道的所允许的带宽的最大值。通常,在实践中,所有应用极不可能同时尝试使用或超过它们的最大保证的带宽。在任何时间周期中,备用带宽可计算为:
BW备用=BWweb服务器所允许的最大值-∑(min(BW应用所允许的最大值,BW应用当前所要求))
如果备用带宽可用,且一些应用16试图超过它们的最大的保证的带宽,那么只要不超过固定时间内的总通信带宽,沙盒4就允许选定的应用16合理使用所述备用带宽。在一个实施例中,使用加权分布在应用16之间划分备用带宽。在另一实施例中,在请求应用16之间相等地划分备用带宽。
对应于web服务器6的不同实例的沙盒4的不同实例可具有不同模板组。通常通过使用一个特定模板组来开发应用16。在一个实施例中,完整的应用16连同资源模板一起可移动到新的沙盒4环境。然而,在新的沙盒4中应用16的模板组可能不可用或不可经配置以供使用。架构42可提供一机构,其在用于测试应用16的准确模板组为不可用时,在新的沙盒4上找到最接近的匹配模板组。在一个实施例中,架构42找到最接近的匹配模板组,其为最有限制性的组,所述最有限制性的组包括在应用的开发期间所使用的所有能力,即,匹配模板不再比用于测试应用16的模板有限制。使用此方法给出了应用16会可靠地工作的最大可能性。
在另一实施例中,使用最小平方拟合(least-squares-fit)的方法来对数量资源与带宽资源模板进行比较,其中对于每个资源或带宽制约而言,来自用于开发应用16的模板的数值与来自研究中的模板的对应制约相比较。将所述两者之间的差异平方且添加到运行总数中。具有最低总数的沙盒4的模板为最佳拟合,且因此为最接近的匹配。应用管理接口模块48可将多种选择呈现给管理员。保存应用16以之开发的模板的选择可给定。
优选地,沙盒4明显地实施资源限制且通常不要求应用16中有任何改变。只要应用16不超过其资源限制,其就会象不存在沙盒4时那样操作。如果应用16超过其资源限制,那么架构模块42可终止相关的请求并向web服务器6发送访问冲突错误,web服务器6可将访问冲突页面返回给客户web浏览器8。在此情况下,应用16不需要修改。
一些应用16可能要求其处理由web服务器6返回的错误以正确地操作。这些错误中有些可能与基层操作***或web服务器资源限制有关。为了有助于沙盒4中现存脚本的执行,架构模块42可返回对应于那些隐含错误的错误代码或错误消息。在使用异常的语言环境(如Java)中,架构模块42可引发异常。举例来说,当web服务器6打开过多文件时,web服务器6的文件打开函数返回一错误。架构模块42可在每个应用16上执行模板界定的打开文件限制。因此,继续所述实例,如果如由架构42所判定,应用16打开过多文件,那么架构模块42可产生对应于隐含错误代码的错误代码。因此,只要应用16准备处理所述错误,其就可不需要改变以在沙盒4中正确地运行。
可使用不同编程语言(例如PHP或Java)来实施在web服务器6上运行的应用16。沙盒4的实施例可并行地为不同应用编程语言提供检查和监控功能。应了解,资源和带宽模板可不依赖开发应用16的编程语言。
应了解,沙盒4的其它实施例可在不截取函数调用的情况下分配资源。举例来说,在一个实施例中,沙盒4可被动地监控资源的使用。被动监控可包含在访问资源时不在应用16上执行限制的情况下监控应用对资源的使用。举例来说,在一个实施例中,不是截取对使用资源的函数的调用,而是沙盒4可仅在例如处理请求之前和之后的固定检查点处对资源的使用与和应用16相关联的限制进行比较。接着可禁用超过其资源使用的应用16。在另一实施例中,沙盒4可周期性地检查资源使用。在又一实施例中,沙盒4可在请求之前和之后且通过执行周期性比较来对资源使用与和应用16相关联的限制进行比较。
C.方法
图4说明用于在服务器计算机12上分配服务器资源的方法的一个实施例的组件之间的信息综合流程。图5是更详细地描绘此方法的一个实施例的流程图。此方法包含在由服务器计算机12执行的代码内,且在从web浏览器8接收到请求时被调用。在状态110中,在执行于服务器计算机12上的web服务器6上接收web请求。
在其它实施例中,当不直接回应请求时,应用16可消耗资源。在一个实施例中,可回应一信号(例如计时器)来启动应用16的持久性线程。在其它实施例中,应用16可发出在虚拟机14中执行的持久性线程起动的信号,虚拟机14随后在请求已经完成后可继续消耗资源。在另一实施例中,在资源模板中为应用16的持久性线程界定单独限制。在另一实施例中,沙盒4从根据请求分配给应用16的总资源中扣除由发信号或持久性线程所消耗的资源。因此,举例来说,如果应用16分配到5兆字节(MB)的内存,且应用的持久性线程消耗3MB,那么响应于一请求,应用16被限于消耗另外2MB的内存。
前进至步骤120,分析web请求且选择应用16。优选地,基于URL来选择应用16。更优选地,基于URL中的主机名或IP地址从脚本的路径名的一部分或从所述两者的组合中选择应用16。
接下来在步骤130处,装载选定应用16的资源模板。在一个实施例中,这包含首先装载应用定义,且接着基于所述定义装载正确的资源模板。
不同的web服务器6可具有不同的可用模板组。具体而言,对于在不同服务器计算机12上运行的web服务器6而言,沙盒4提供不同模板组可为有利的。因此,可使用第一沙盒4的模板在第一web服务器6上开发应用,然后在第二web服务器6上部署所述应用。如果第二web服务器6上的沙盒4不提供所述模板,那么第二沙盒4优选地选择一模板来使用,所述模板允许至少将本来由第一沙盒4上的模板分配的资源分配给应用16。
转到步骤140,沙盒4使用资源模板来配置应用的运行时环境,例如虚拟机模块14,其中沙盒4可监控消耗资源的函数。在一个实施例中,应用运行时环境包含脚本虚拟机模块14,用于执行以脚本类型语言(例如PHP)写的应用16。
进入步骤150,架构模块42将应用16的资源消耗监控数据初始化。优选地,这包含记录应用16的当前资源使用、判定当前时间和起动计时器,所述计时器在超过请求的最大时间时会期满。
接下来,在状态160处,在服务器计算机12上处理选定的应用16。优选地,与应用16相关联的代码或字节代码在虚拟机模块14中执行,直到达到已经被截取的函数调用为止。当达到截取的函数调用时,方法100转到状态170,其中,如果函数调用指示退出或处理结束,那么方法100进入步骤230以结束消耗追踪。否则,方法100进入状态175,其中检查在步骤150中起动的计时器以察看其是否已经期满。如果其已经期满,那么方法100进入错误状态210。
否则,方法100进入状态180,其中函数调用由架构模块42截取。接下来在状态190处,基于优选包括调用的函数和函数调用的参数的信息,架构模块将对资源的请求与应用19的适当模板中的对应参数进行比较。所请求的资源可为函数调用所固有的,例如所访问的功能本身为受限制的资源。或者,可检验函数调用的参数以判定身份,例如文件名或数量,例如要分配的内存的量。
转到步骤200,如果达到模块中指定的限制,那么方法100的处理进入错误装置210。如果资源为功能类型资源,那么认为达到限制,且如果应用功能模板不允许应用16的特定功能,那么处理转到错误状态210。否则,方法100转到步骤220,其中如果合适的话便更新应用16的资源使用。从步骤220转移,应用16返回步骤160。
如果应用16已经试图超过其资源限制,那么方法100进入状态210。在状态210处,在一个实施例中,可将错误返回给应用16。在一些脚本语言中,这可通过引发要由应用16处理的异常来执行。在另一实施例中,应用16终止且错误被返回给web服务器6。在另一实施例中,资源模板判定这些行为中的哪些是要在根据资源的基础上使用的。
在应用16已经完成对请求的处理后,从步骤170开始或在步骤210的错误后,处理进入步骤230。在步骤230处,沙盒4可清除任何内部状态。优选地,这可包括删除请求计时器、判定执行所述请求所花费的时间的量和从应用的存储桶中扣除对应数目的令牌。在一些实施例中,与由应用16消耗的资源有关的信息可存储到存储器20中,以允许资源限制越过应用16的多个调用累积地应用。接着方法100进入结束状态。
图6说明针对PHP脚本语言的沙盒4的一个优选实施例中的信息综合流程。虚拟机模块14基于PHP脚本语言的解释器。优选地,架构模块42配置如图3所描绘的PHP虚拟机模块14的函数表,以截取与资源使用相关联的PHP函数调用。因此,由于与应用16相关联的PHP脚本由虚拟机模块14执行,所以与资源相关联的函数根据图5中所描绘的方法的实施例由架构模块42截取。
应用管理接口模块48可提供基于web的人机接口,以允许web服务器管理员客户22配置沙盒模板参数和应用定义。图7是描绘如由应用管理接口模块48的一个实施例提供的基于web的接口页面的屏幕截图,所述基于web的接口页面允许函数模板改变。在所描绘的配置页面上,“测试”为所述模板的名称。“模块”为可禁用的模块的下拉列表。“禁用模块”按钮禁用当前从所述列表中选择的模块。“函数”为当前选择的模块中的函数的列表。“禁用函数”按钮禁用当前从列表中选择的函数。“禁用的模块”和“禁用的函数”显示当前被禁用的模块和函数。在这些文本框中的任何一者中突出模块或函数名称且按压其下面的“删除”按钮会将所述模块或函数从禁用的列表中移除。
图8是描绘如由应用管理接口模块48的一个实施例提供的基于web的接口页面的屏幕截图,所述基于web的接口页面允许资源模板改变。在图上,“默认”为所述模板的名称(在此情况下为默认模板)。“名称”列列出资源的名称。“静态”列指示资源为固定资源(是)还是可随时间的过去而消耗的资源(否)。“上限”为资源的上限,且“单位”指定单位(M指示兆字节,无单位指示资源为计数)。
图9是描绘如由应用管理接口模块48的一个实施例提供的基于web的接口页面的屏幕截图,所述基于web的接口页面允许带宽模板改变。在此图上,“默认”为所述模板的名称(在此情况下为默认模板)。第一列指示传输类型(例如,电子邮件)。此为用于传输消息的协议。行由提供商(例如,Telus)来分组。此为经由传输来访问的通信服务的提供商。“保证的BW”列给出了每秒可发送的消息的保证的数目。“最大缓冲”列给出了当在沙盒4可开始丢弃消息前超过保证的带宽时将排队等候的消息的最大数目。
虽然上文的详细描述已经展示、描述并指出了如应用到各种实施例的本发明的新颖特征,但应了解,所属领域的技术人员可在不脱离本发明精神的情况下,对所说明的装置或过程的形式和细节作出各种省略、替代和改变。将认识到,本发明可在不提供本文所陈述的所有特征和益处的形式内实施,因为一些特征可与其它特征分开使用或实践。本发明的范畴由所附权利要求书指示,而不是由前面的描述指示。在权利要求书的均等物的意义和范围内的所有改变均包含在它们的范畴内。
Claims (47)
1.一种web服务器***,其包含:
一服务器计算机,其上安装有一web服务器和与所述web服务器交互操作以服务于来自web浏览器的请求的复数个应用;
复数个模板,每个模板与所述应用中的一个或一个以上相关联,且为此类应用的执行指定资源使用限制,以便对不同的应用施加不同的资源使用限制;
一应用架构,其在与所述web服务器相关联的所述服务器计算机上运行,且执行由所述模板指定的所述资源使用限制;和
一应用管理接口,其为一管理员提供功能以编辑所述复数个模板且创建新的模板,以便在所述服务器计算机上控制所述复数个应用的执行。
2.根据权利要求1所述的web服务器***,其中所述应用架构至少部分地通过截取所述应用向所述web服务器作出的函数调用来执行所述资源使用限制。
3.根据权利要求1所述的web服务器***,其中所述应用架构在一服务器计算机群集内集合地执行所述资源使用限制。
4.根据权利要求1所述的web服务器***,其中所述模板指定对所述应用的资源数量限制,且所述应用架构监控所述应用随着时间的资源使用,以执行所述资源数量限制。
5.根据权利要求1所述的web服务器***,其中所述应用架构还防止一应用访问已经分配给另一应用的资源。
6.根据权利要求1所述的web服务器***,其中所述应用架构控制所述应用的函数资源使用,以执行所界定的应用函数访问限制。
7.根据权利要求1所述的web服务器***,其中所述应用架构控制所述应用的网络带宽使用,以执行所界定的带宽分配。
8.根据权利要求1所述的web服务器***,其中所述应用架构代表所述应用对所述web服务器进行调用。
9.根据权利要求1所述的web服务器***,其中所述应用架构至少部分地通过维持一应用的令牌计数来监控所述应用的资源使用,其中每个令牌均代表可由所述应用使用的服务器资源的一数量。
10.根据权利要求1所述的web服务器***,其中所述应用架构对一web服务器请求作出回应,所述web服务器请求通过装载与一应用相关联的至少一个模板来调用所述应用。
11.一种用于在一服务器计算机中分配资源的方法,其包含:
接收一来自一客户的对动态内容的web服务器请求,其中所述web服务器请求包含一URL;
标识一用于产生所述动态内容的应用,其中至少部分地基于所述URL来标识所述应用;
标识所述应用的一模板,其中所述模板使至少一个资源与一限制相关联;和在一经配置以允许拟截取的资源访问函数调用的虚拟机中执行所述应用;
截取资源访问函数调用;
如果未超过所述限制,那么准许访问所述资源;和
追踪资源使用。
12.根据权利要求1所述的方法,其进一步包含:
当超过所述限制时,终止所述应用并将一错误返回给所述客户。
13.根据权利要求1所述的方法,其进一步包含:
当超过所述限制时,将一异常返回给所述应用。
14.根据权利要求1所述的方法,其中所述动态内容包含来自一数据库的信息。
15.一种用于在一服务器计算机中分配资源的方法,其包含:
接收一来自一客户的请求;
至少部分地基于所述请求来标识一应用;
标识一资源与所述应用所特有的一限制的至少一个关联;和
在一经配置以限制对所述限制所指定的所述资源的访问的虚拟机中执行所述应用。
16.根据权利要求15所述的方法,其中所述请求包含一web请求。
17.根据权利要求15所述的方法,其中所述虚拟机经配置以执行复数个应用,其中以所述资源的一不同限制来标识所述复数个应用中的至少两个应用。
18.根据权利要求15所述的方法,其进一步包含:
当超过所述限制时,终止所述应用且将一错误返回给所述客户。
19.根据权利要求15所述的方法,其进一步包含:
当超过所述限制时,将一异常返回给所述应用。
20.根据权利要求15所述的方法,其中所述动态内容包含来自一数据库的信息。
21.根据权利要求15所述的方法,其进一步包含:
通过一基于web的人机接口来界定一资源与一限制的所述关联。
22.根据权利要求15所述的方法,其中所述资源包含一由所述服务器执行的函数。
23.根据权利要求22所述的方法,其中对一函数的所述限制代表所述函数是否可被访问。
24.根据权利要求22所述的方法,其进一步包含:
如果尚未为一应用指定一限制,那么自动判定对所述函数的所述限制。
25.根据权利要求24所述的方法,其中如果尚未为一应用指定一限制那么自动判定对所述函数的所述限制包含禁用添加到所述运行时环境中的新函数。
26.根据权利要求24所述的方法,其中如果尚未为一应用指定一限制那么自动判定对所述函数的所述限制包含启用添加到所述运行时环境中的新函数。
27.根据权利要求22所述的方法,其中限制一函数是基于所述函数的参数的一应用特定验证。
28.根据权利要求15所述的方法,其中限制访问包含对所述资源的一数量执行一限制。
29.根据权利要求28所述的方法,其中限制对一资源的访问包含:
对消耗的所述资源的所述数量进行监控。
30.根据权利要求15所述的方法,其中所述资源包含处理器时间。
31.根据权利要求30所述的方法,其中对处理器时间的所述限制是跨越对所述应用的复数个请求累积的。
32.根据权利要求15所述的方法,其中所述资源包含带宽。
33.根据权利要求15所述的方法,其中所述资源包含打开的文件。
34.根据权利要求15所述的方法,其中所述资源包含文件空间。
35.根据权利要求15所述的方法,其中所述资源包含打开的数据库连接。
36.根据权利要求15所述的方法,其中所述资源包含内存。
37.根据权利要求15所述的方法,其中所述资源包含一定量的时间以回应所述请求。
38.根据权利要求15所述的方法,其中执行所述应用包含:
在与访问所述资源相关联的所述运行时环境中截取一函数调用;和
基于所述应用资源限制重新选路所述函数调用。
39.根据权利要求38所述的方法,其中通过所述函数调用的一参数来判定所述资源。
40.根据权利要求15所述的方法,其中所述虚拟机包含一PHP解释器。
41.一种用于为一应用选择一替代资源模板的方法,其包含:
在一与一应用相关联的第一服务器中标识对至少一个资源界定一限制的一模板;
将所述相关联的模板与为一第二服务器提供的一组可用模板相比较;和
选择为所述相关联的模板的一最接近匹配的可用模板。
42.根据权利要求41所述的方法,其中所述可用模板界定一限制,所述限制不比所述相关联的模板的所述限制更有限制性。
43.根据权利要求41所述的方法,选择具有一最接近匹配的所述可用模板包含计算所述可用模板到所述相关联的模板的一最小平方量度。
44.一种用于在一服务器计算机中分配资源的***,其包含:
一虚拟机模块,其经配置以执行一与一服务器请求相关联的计算机应用;
一应用定义模块,其经配置以标识至少一个资源模板与所述应用的一映射;
一参数模板模块,其经配置以标识一与所述应用相关联的模板,其中所述模板使至少一个资源与一限制相关联;
一架构模块,其经配置以截取与所述资源相关联的所述应用的函数调用,且限制对所述模板的所述限制所指定的所述资源的访问。
45.根据权利要求44所述的***,其中所述应用定义模块经配置以从应用到模板的复数个映射中标识至少一个资源模板与所述应用的映射,其中至少一第一应用与至少一第二应用映射到一不同模板。
46.一种用于分配用于处理到一服务器计算机的一客户请求的资源的***,其包含:
用于至少部分地基于所述请求来标识一应用的构件;
用于标识一资源与所述应用特有的一限制的至少一个关联的构件;
用于执行所述应用的构件;和
用于限制对所述限制所指定的所述资源的访问的构件。
47.一种用于在一服务器计算机中分配资源的方法,其包含:
接收一信号以启动一应用;
至少部分地基于所述信号来标识一应用;
标识一资源与所述应用特有的一限制的至少一个关联;和
在一虚拟机中执行所述应用,所述虚拟机经配置以限制对所述限制所指定的所述资源的访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/742,618 US20050177635A1 (en) | 2003-12-18 | 2003-12-18 | System and method for allocating server resources |
US10/742,618 | 2003-12-18 | ||
PCT/IB2004/004418 WO2005062571A2 (en) | 2003-12-18 | 2004-12-17 | System and method for allocating server resources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1894667A true CN1894667A (zh) | 2007-01-10 |
CN1894667B CN1894667B (zh) | 2010-04-28 |
Family
ID=34710557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800374841A Expired - Fee Related CN1894667B (zh) | 2003-12-18 | 2004-12-17 | 分配服务器资源的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050177635A1 (zh) |
EP (1) | EP1700214A2 (zh) |
CN (1) | CN1894667B (zh) |
CA (1) | CA2547825A1 (zh) |
WO (1) | WO2005062571A2 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019861A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 虚拟机分配方法及装置 |
CN103618758A (zh) * | 2013-10-31 | 2014-03-05 | 新浪网技术(中国)有限公司 | Web服务器及其***资源访问控制方法 |
CN103631715A (zh) * | 2013-11-28 | 2014-03-12 | 北京奇虎科技有限公司 | 应用测试方法、设备及*** |
CN103699479A (zh) * | 2012-09-27 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | 一种沙盒测试环境构建***及构建方法 |
CN103810029A (zh) * | 2014-02-08 | 2014-05-21 | 南开大学 | 一种基于虚拟机出租通用计算能力的***及方法 |
CN103902380A (zh) * | 2012-12-26 | 2014-07-02 | 北京百度网讯科技有限公司 | 一种利用沙箱来确定资源分配的方法、装置和设备 |
WO2014101208A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 一种获取文件的方法和装置 |
WO2014169779A1 (zh) * | 2013-04-18 | 2014-10-23 | 华为技术有限公司 | 接收请求的方法及cdn服务器 |
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
CN103631715B (zh) * | 2013-11-28 | 2016-11-30 | 北京奇虎科技有限公司 | 应用测试方法、设备及*** |
Families Citing this family (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814491B1 (en) * | 2004-04-14 | 2010-10-12 | Oracle America, Inc. | Method and apparatus for managing system resources using a container model |
US8266670B1 (en) | 2004-05-06 | 2012-09-11 | American Express Travel Related Services Company, Inc. | System and method for dynamic security provisioning of data resources |
US7827294B2 (en) | 2004-05-06 | 2010-11-02 | American Express Travel Related Services Company, Inc. | System and method for dynamic security provisioning of computing resources |
US20050273507A1 (en) * | 2004-06-08 | 2005-12-08 | Yong Yan | Method and system for managing heterogeneous resources across a distributed computer network |
US8849892B2 (en) * | 2004-06-10 | 2014-09-30 | Verizon Patent And Licensing Inc. | Method and system for brokering messages in a distributed system |
US8954584B1 (en) * | 2004-08-18 | 2015-02-10 | Oracle America, Inc. | Policy engine for automating management of scalable distributed persistent applications in a grid |
US7793350B2 (en) * | 2004-10-28 | 2010-09-07 | International Business Machines Corporation | Apparatus, system, and method for simulated access to restricted computing resources |
US7673050B2 (en) * | 2004-12-17 | 2010-03-02 | Microsoft Corporation | System and method for optimizing server resources while providing interaction with documents accessible through the server |
KR100631615B1 (ko) * | 2004-12-31 | 2006-10-11 | 엘지전자 주식회사 | 멀티미디어 메세지 수신 방법 |
US8332526B2 (en) * | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
GB2426862B (en) * | 2005-06-04 | 2007-04-11 | Alan Charles Sturt | Thermonuclear power generation |
JP4955943B2 (ja) * | 2005-06-28 | 2012-06-20 | クラリオン株式会社 | 情報端末および計算機資源管理方法 |
JP4516496B2 (ja) * | 2005-07-27 | 2010-08-04 | 株式会社日立製作所 | マルチキャスト配信方法及びシステム、コンテンツサーバ |
US8245270B2 (en) * | 2005-09-01 | 2012-08-14 | Microsoft Corporation | Resource based dynamic security authorization |
CN1936849A (zh) * | 2005-09-19 | 2007-03-28 | 国际商业机器公司 | 资源动态调整方法及设备 |
US20070174429A1 (en) | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7647405B2 (en) * | 2006-02-06 | 2010-01-12 | International Business Machines Corporation | Method for reducing variability and oscillations in load balancing recommendations using historical values and workload metrics |
US20070217335A1 (en) * | 2006-03-16 | 2007-09-20 | Utstarcom, Inc. | Method and apparatus to facilitate communication resource usage control |
US8185737B2 (en) | 2006-06-23 | 2012-05-22 | Microsoft Corporation | Communication across domains |
US11120406B2 (en) * | 2006-11-16 | 2021-09-14 | Comcast Cable Communications, Llc | Process for abuse mitigation |
US8347403B2 (en) * | 2006-12-19 | 2013-01-01 | Canon Kabushiki Kaisha | Single point authentication for web service policy definition |
GB2447672B (en) | 2007-03-21 | 2011-12-14 | Ford Global Tech Llc | Vehicle manoeuvring aids |
US9305096B2 (en) * | 2007-04-30 | 2016-04-05 | Microsoft Technology Licensing, Llc | Uniform resource identifier template manipulation |
US10019570B2 (en) | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US8200586B2 (en) * | 2007-06-25 | 2012-06-12 | International Business Machines Corporation | Method for dynamic usage billing |
US8621550B1 (en) * | 2007-09-28 | 2013-12-31 | Emc Corporation | Information technology resource compliance templates |
US8677141B2 (en) * | 2007-11-23 | 2014-03-18 | Microsoft Corporation | Enhanced security and performance of web applications |
US8793363B2 (en) * | 2008-01-15 | 2014-07-29 | At&T Mobility Ii Llc | Systems and methods for real-time service assurance |
US8837465B2 (en) | 2008-04-02 | 2014-09-16 | Twilio, Inc. | System and method for processing telephony sessions |
CN104902113B (zh) | 2008-04-02 | 2018-10-19 | 特维里奥公司 | 处理电话会话的***和方法 |
US9665837B2 (en) * | 2008-08-05 | 2017-05-30 | International Business Machines Corporation | Charging resource usage in a distributed computing environment |
US8266254B2 (en) * | 2008-08-19 | 2012-09-11 | International Business Machines Corporation | Allocating resources in a distributed computing environment |
US8261342B2 (en) * | 2008-08-20 | 2012-09-04 | Reliant Security | Payment card industry (PCI) compliant architecture and associated methodology of managing a service infrastructure |
US8533333B2 (en) * | 2008-09-03 | 2013-09-10 | Microsoft Corporation | Shared hosting using host name affinity |
EP2335402A4 (en) | 2008-10-01 | 2013-04-24 | Twilio Inc | TELEPHONY WEB EVENT SYSTEM AND METHOD |
CN102246156A (zh) * | 2008-10-14 | 2011-11-16 | 惠普开发有限公司 | 在网络***中管理事件流量 |
US8745361B2 (en) * | 2008-12-02 | 2014-06-03 | Microsoft Corporation | Sandboxed execution of plug-ins |
US7996484B2 (en) | 2008-12-11 | 2011-08-09 | Microsoft Corporation | Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory |
US20100192224A1 (en) * | 2009-01-26 | 2010-07-29 | International Business Machines Corporation | Sandbox web navigation |
US8509415B2 (en) * | 2009-03-02 | 2013-08-13 | Twilio, Inc. | Method and system for a multitenancy telephony network |
CA2789942C (en) | 2009-03-02 | 2017-05-23 | Jeffrey Lawson | Method and system for a multitenancy telephone network |
US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US8554831B2 (en) * | 2009-06-02 | 2013-10-08 | Ford Global Technologies, Llc | System and method for executing hands-free operation of an electronic calendar application within a vehicle |
US20110083122A1 (en) * | 2009-10-05 | 2011-04-07 | Salesforce.Com, Inc. | Method and system for massive large scale test infrastructure |
US9210275B2 (en) | 2009-10-07 | 2015-12-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US20110083179A1 (en) * | 2009-10-07 | 2011-04-07 | Jeffrey Lawson | System and method for mitigating a denial of service attack using cloud computing |
US8582737B2 (en) * | 2009-10-07 | 2013-11-12 | Twilio, Inc. | System and method for running a multi-module telephony application |
WO2011091085A1 (en) | 2010-01-19 | 2011-07-28 | Twilio Inc. | Method and system for preserving telephony session state |
US8346310B2 (en) * | 2010-02-05 | 2013-01-01 | Ford Global Technologies, Llc | Method and apparatus for communication between a vehicle based computing system and a remote application |
US8898287B2 (en) * | 2010-02-24 | 2014-11-25 | Salesforce.Com, Inc. | System, method and computer program product for monitoring data activity utilizing a shared data store |
US8495166B2 (en) * | 2010-04-21 | 2013-07-23 | Microsoft Corporation | Optimized caching for large data requests |
US9639688B2 (en) | 2010-05-27 | 2017-05-02 | Ford Global Technologies, Llc | Methods and systems for implementing and enforcing security and resource policies for a vehicle |
US9094436B2 (en) | 2010-05-27 | 2015-07-28 | Ford Global Technologies, Llc | Methods and systems for interfacing with a vehicle computing system over multiple data transport channels |
US20120208495A1 (en) | 2010-06-23 | 2012-08-16 | Twilio, Inc. | System and method for monitoring account usage on a platform |
US9459926B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US9338064B2 (en) | 2010-06-23 | 2016-05-10 | Twilio, Inc. | System and method for managing a computing cluster |
US9459925B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US8416923B2 (en) | 2010-06-23 | 2013-04-09 | Twilio, Inc. | Method for providing clean endpoint addresses |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US8838707B2 (en) | 2010-06-25 | 2014-09-16 | Twilio, Inc. | System and method for enabling real-time eventing |
US9323921B2 (en) | 2010-07-13 | 2016-04-26 | Microsoft Technology Licensing, Llc | Ultra-low cost sandboxing for application appliances |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8473575B2 (en) | 2010-08-26 | 2013-06-25 | Ford Global Technologies, Llc | Methods and apparatus for remote activation of an application |
US10163273B2 (en) | 2010-09-28 | 2018-12-25 | Ford Global Technologies, Llc | Method and system for operating mobile applications in a vehicle |
US9152293B2 (en) * | 2010-12-09 | 2015-10-06 | Verizon Patent And Licensing Inc. | Server IP addressing in a computing-on-demand system |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
US8903705B2 (en) | 2010-12-17 | 2014-12-02 | Microsoft Corporation | Application compatibility shims for minimal client computers |
US8560739B2 (en) | 2010-12-28 | 2013-10-15 | Ford Global Technologies, Llc | Methods and systems for regulating operation of one or more functions of a mobile application |
US8649268B2 (en) | 2011-02-04 | 2014-02-11 | Twilio, Inc. | Method for processing telephony sessions of a network |
US9452735B2 (en) | 2011-02-10 | 2016-09-27 | Ford Global Technologies, Llc | System and method for controlling a restricted mode in a vehicle |
US10145960B2 (en) | 2011-02-24 | 2018-12-04 | Ford Global Technologies, Llc | System and method for cell phone restriction |
US8522320B2 (en) | 2011-04-01 | 2013-08-27 | Ford Global Technologies, Llc | Methods and systems for authenticating one or more users of a vehicle communications and information system |
US9506774B2 (en) | 2011-04-19 | 2016-11-29 | Ford Global Technologies, Llc | Method of inputting a path for a vehicle and trailer |
US9248858B2 (en) | 2011-04-19 | 2016-02-02 | Ford Global Technologies | Trailer backup assist system |
US9500497B2 (en) | 2011-04-19 | 2016-11-22 | Ford Global Technologies, Llc | System and method of inputting an intended backing path |
US9555832B2 (en) | 2011-04-19 | 2017-01-31 | Ford Global Technologies, Llc | Display system utilizing vehicle and trailer dynamics |
US9926008B2 (en) | 2011-04-19 | 2018-03-27 | Ford Global Technologies, Llc | Trailer backup assist system with waypoint selection |
US9854209B2 (en) | 2011-04-19 | 2017-12-26 | Ford Global Technologies, Llc | Display system utilizing vehicle and trailer dynamics |
US9969428B2 (en) | 2011-04-19 | 2018-05-15 | Ford Global Technologies, Llc | Trailer backup assist system with waypoint selection |
US9374562B2 (en) | 2011-04-19 | 2016-06-21 | Ford Global Technologies, Llc | System and method for calculating a horizontal camera to target distance |
US9290204B2 (en) | 2011-04-19 | 2016-03-22 | Ford Global Technologies, Llc | Hitch angle monitoring system and method |
US9524531B2 (en) * | 2011-05-09 | 2016-12-20 | Microsoft Technology Licensing, Llc | Extensibility features for electronic communications |
US8938224B2 (en) | 2011-05-12 | 2015-01-20 | Ford Global Technologies, Llc | System and method for automatically enabling a car mode in a personal communication device |
US9495183B2 (en) | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
US20140044123A1 (en) | 2011-05-23 | 2014-02-13 | Twilio, Inc. | System and method for real time communicating with a client application |
WO2012162397A1 (en) | 2011-05-23 | 2012-11-29 | Twilio, Inc. | System and method for connecting a communication to a client |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US20120310445A1 (en) | 2011-06-02 | 2012-12-06 | Ford Global Technologies, Llc | Methods and Apparatus for Wireless Device Application Having Vehicle Interaction |
US8788113B2 (en) | 2011-06-13 | 2014-07-22 | Ford Global Technologies, Llc | Vehicle driver advisory system and method |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US9529752B2 (en) | 2011-07-25 | 2016-12-27 | Ford Global Technologies, Llc | Method and apparatus for communication between a vehicle based computing system and a remote application |
US10097993B2 (en) | 2011-07-25 | 2018-10-09 | Ford Global Technologies, Llc | Method and apparatus for remote authentication |
US8849519B2 (en) | 2011-08-09 | 2014-09-30 | Ford Global Technologies, Llc | Method and apparatus for vehicle hardware theft prevention |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US8694203B2 (en) | 2011-09-12 | 2014-04-08 | Ford Global Technologies, Llc | Method and apparatus for vehicle process emulation and configuration on a mobile platform |
EP2759123B1 (en) | 2011-09-21 | 2018-08-15 | Twilio, Inc. | System and method for authorizing and connecting application developers and users |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
US9413538B2 (en) | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US9389933B2 (en) | 2011-12-12 | 2016-07-12 | Microsoft Technology Licensing, Llc | Facilitating system service request interactions for hardware-protected applications |
US10467058B2 (en) * | 2011-12-20 | 2019-11-05 | Microsoft Technology Licensing, Llc | Sandboxing for multi-tenancy |
CN102436507B (zh) * | 2011-12-28 | 2014-07-16 | 奇智软件(北京)有限公司 | 一种浏览网页的方法及装置 |
US9535827B2 (en) * | 2011-12-29 | 2017-01-03 | Intel Corporation | RAM disk using non-volatile random access memory |
US8799988B2 (en) * | 2012-01-25 | 2014-08-05 | Microsoft Corporation | Document communication runtime interfaces |
US9495227B2 (en) * | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
WO2013151454A1 (en) * | 2012-04-06 | 2013-10-10 | Google Inc. | Hosted application sandboxing |
US20130275968A1 (en) * | 2012-04-17 | 2013-10-17 | Petio Petev | Application management methods and systems |
US9569403B2 (en) | 2012-05-03 | 2017-02-14 | Ford Global Technologies, Llc | Methods and systems for authenticating one or more users of a vehicle communications and information system |
US20130304928A1 (en) | 2012-05-09 | 2013-11-14 | Twilio, Inc. | System and method for managing latency in a distributed telephony network |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9240941B2 (en) | 2012-05-09 | 2016-01-19 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9247062B2 (en) | 2012-06-19 | 2016-01-26 | Twilio, Inc. | System and method for queuing a communication session |
US20140006598A1 (en) * | 2012-06-29 | 2014-01-02 | Nokia Corporation | Methods, apparatuses and computer program products for facilitating dynamic origin-based domain allocation |
US9078088B2 (en) | 2012-07-12 | 2015-07-07 | Myine Electronics, Inc. | System and method for transport layer agnostic programming interface for use with smartphones |
US8737962B2 (en) | 2012-07-24 | 2014-05-27 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US8738051B2 (en) | 2012-07-26 | 2014-05-27 | Twilio, Inc. | Method and system for controlling message routing |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US8938053B2 (en) | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
US8948356B2 (en) | 2012-10-15 | 2015-02-03 | Twilio, Inc. | System and method for routing communications |
CN103888927B (zh) * | 2012-12-21 | 2018-05-11 | ***通信集团上海有限公司 | 一种带宽费用确定方法、装置、服务器及*** |
US9253254B2 (en) | 2013-01-14 | 2016-02-02 | Twilio, Inc. | System and method for offering a multi-partner delegated platform |
US9218805B2 (en) | 2013-01-18 | 2015-12-22 | Ford Global Technologies, Llc | Method and apparatus for incoming audio processing |
US8981916B2 (en) | 2013-01-28 | 2015-03-17 | Ford Global Technologies, Llc | Method and apparatus for customized vehicle sound-based location |
US9592851B2 (en) | 2013-02-04 | 2017-03-14 | Ford Global Technologies, Llc | Control modes for a trailer backup assist system |
US9511799B2 (en) | 2013-02-04 | 2016-12-06 | Ford Global Technologies, Llc | Object avoidance for a trailer backup assist system |
US9538339B2 (en) | 2013-02-07 | 2017-01-03 | Ford Global Technologies, Llc | Method and system of outputting in a vehicle data streamed by mobile applications |
US9146899B2 (en) | 2013-02-07 | 2015-09-29 | Ford Global Technologies, Llc | System and method of arbitrating audio source streamed by mobile applications |
US20140229619A1 (en) * | 2013-02-11 | 2014-08-14 | Liferay, Inc. | Resilient Portals Through Sandboxing |
US8866604B2 (en) | 2013-02-14 | 2014-10-21 | Ford Global Technologies, Llc | System and method for a human machine interface |
US9688246B2 (en) | 2013-02-25 | 2017-06-27 | Ford Global Technologies, Llc | Method and apparatus for in-vehicle alarm activation and response handling |
US9042603B2 (en) | 2013-02-25 | 2015-05-26 | Ford Global Technologies, Llc | Method and apparatus for estimating the distance from trailer axle to tongue |
US8947221B2 (en) | 2013-02-26 | 2015-02-03 | Ford Global Technologies, Llc | Method and apparatus for tracking device connection and state change |
US9141583B2 (en) | 2013-03-13 | 2015-09-22 | Ford Global Technologies, Llc | Method and system for supervising information communication based on occupant and vehicle environment |
US9282124B2 (en) | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9002536B2 (en) | 2013-03-14 | 2015-04-07 | Ford Global Technologies, Llc | Key fob security copy to a mobile phone |
US9001666B2 (en) | 2013-03-15 | 2015-04-07 | Twilio, Inc. | System and method for improving routing in a distributed communication platform |
US8933822B2 (en) | 2013-03-15 | 2015-01-13 | Ford Global Technologies, Llc | Method and apparatus for extra-vehicular emergency updates following an accident |
US9479601B2 (en) | 2013-03-15 | 2016-10-25 | Ford Global Technologies, Llc | Method and apparatus for seamless application portability over multiple environments |
CN103150390B (zh) * | 2013-03-21 | 2016-04-13 | 北京奇虎科技有限公司 | 一种对Flash窗口的处理方法和装置 |
US9197336B2 (en) | 2013-05-08 | 2015-11-24 | Myine Electronics, Inc. | System and method for providing customized audio content to a vehicle radio system using a smartphone |
US9338280B2 (en) | 2013-06-19 | 2016-05-10 | Twilio, Inc. | System and method for managing telephony endpoint inventory |
US9225840B2 (en) | 2013-06-19 | 2015-12-29 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US9240966B2 (en) | 2013-06-19 | 2016-01-19 | Twilio, Inc. | System and method for transmitting and receiving media messages |
US9483328B2 (en) | 2013-07-19 | 2016-11-01 | Twilio, Inc. | System and method for delivering application content |
US9274858B2 (en) | 2013-09-17 | 2016-03-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9338018B2 (en) | 2013-09-17 | 2016-05-10 | Twilio, Inc. | System and method for pricing communication of a telecommunication platform |
US9137127B2 (en) | 2013-09-17 | 2015-09-15 | Twilio, Inc. | System and method for providing communication platform metadata |
US9352777B2 (en) | 2013-10-31 | 2016-05-31 | Ford Global Technologies, Llc | Methods and systems for configuring of a trailer maneuvering system |
US9553799B2 (en) | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US9325624B2 (en) | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US9363284B2 (en) | 2013-12-11 | 2016-06-07 | International Business Machines Corporation | Testing web applications for security vulnerabilities with metarequests |
US9233710B2 (en) | 2014-03-06 | 2016-01-12 | Ford Global Technologies, Llc | Trailer backup assist system using gesture commands and method |
US9344573B2 (en) | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US9703611B1 (en) | 2014-03-21 | 2017-07-11 | Amazon Technologies, Inc. | Isolating resources for utilization by tenants executing in multi-tenant software containers |
US9226217B2 (en) | 2014-04-17 | 2015-12-29 | Twilio, Inc. | System and method for enabling multi-modal communication |
CN105095291A (zh) * | 2014-05-15 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种浏览器的内核控制方法和装置 |
US9122562B1 (en) * | 2014-06-19 | 2015-09-01 | Amazon Technologies, Inc. | Software container recommendation service |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9516101B2 (en) | 2014-07-07 | 2016-12-06 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US9251371B2 (en) | 2014-07-07 | 2016-02-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US9246694B1 (en) | 2014-07-07 | 2016-01-26 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
US9749428B2 (en) | 2014-10-21 | 2017-08-29 | Twilio, Inc. | System and method for providing a network discovery service platform |
US9533683B2 (en) | 2014-12-05 | 2017-01-03 | Ford Global Technologies, Llc | Sensor failure mitigation system and mode management |
US9522677B2 (en) | 2014-12-05 | 2016-12-20 | Ford Global Technologies, Llc | Mitigation of input device failure and mode management |
RU2584507C1 (ru) * | 2014-12-19 | 2016-05-20 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обеспечения безопасного выполнения файла сценария |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US10249123B2 (en) | 2015-04-09 | 2019-04-02 | Ford Global Technologies, Llc | Systems and methods for mobile phone key fob management |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US9896130B2 (en) | 2015-09-11 | 2018-02-20 | Ford Global Technologies, Llc | Guidance system for a vehicle reversing a trailer along an intended backing path |
US10320841B1 (en) | 2015-12-28 | 2019-06-11 | Amazon Technologies, Inc. | Fraud score heuristic for identifying fradulent requests or sets of requests |
US11290486B1 (en) * | 2015-12-28 | 2022-03-29 | Amazon Technologies, Inc. | Allocating defective computing resources for honeypot services |
US10097581B1 (en) | 2015-12-28 | 2018-10-09 | Amazon Technologies, Inc. | Honeypot computing services that include simulated computing resources |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US10112646B2 (en) | 2016-05-05 | 2018-10-30 | Ford Global Technologies, Llc | Turn recovery human machine interface for trailer backup assist |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US11237843B2 (en) * | 2018-03-05 | 2022-02-01 | Beijing Zhanxinzhanli Information Technology Co., Ltd. | Application-level runtime environment for executing applications native to mobile devices without full installation |
US10601954B2 (en) | 2018-03-09 | 2020-03-24 | Microsoft Technology Licensing, Llc | Sandboxing requests for web services |
JP7037514B2 (ja) * | 2019-02-21 | 2022-03-16 | 株式会社東芝 | プラント監視システムおよびプラント監視方法 |
US11632338B2 (en) * | 2019-07-03 | 2023-04-18 | Vmware, Inc. | Multi-tenant resource management in a gateway |
US11176247B2 (en) * | 2020-04-02 | 2021-11-16 | Aqua Security Software, Ltd. | System and method for container assessment using sandboxing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870550A (en) * | 1996-02-26 | 1999-02-09 | Network Engineering Software | Web server employing multi-homed, moldular framework |
US6434598B1 (en) * | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US5987608A (en) * | 1997-05-13 | 1999-11-16 | Netscape Communications Corporation | Java security mechanism |
US7225249B1 (en) * | 1997-09-26 | 2007-05-29 | Mci, Llc | Integrated systems for providing communications network management services and interactive generating invoice documents |
US6154751A (en) * | 1998-05-14 | 2000-11-28 | International Business Machines Corporation | Method for executing a user-requested CGI program in a new authentication context while protecting operation of a default web server program |
US7269625B1 (en) * | 2001-03-19 | 2007-09-11 | Edge Technologies, Inc. | System and method for monitoring and managing an enterprise network |
US6823382B2 (en) * | 2001-08-20 | 2004-11-23 | Altaworks Corporation | Monitoring and control engine for multi-tiered service-level management of distributed web-application servers |
JP4158365B2 (ja) * | 2001-08-27 | 2008-10-01 | ブラザー工業株式会社 | ネットワーク端末装置 |
-
2003
- 2003-12-18 US US10/742,618 patent/US20050177635A1/en not_active Abandoned
-
2004
- 2004-12-17 EP EP04816630A patent/EP1700214A2/en not_active Withdrawn
- 2004-12-17 WO PCT/IB2004/004418 patent/WO2005062571A2/en active Application Filing
- 2004-12-17 CN CN2004800374841A patent/CN1894667B/zh not_active Expired - Fee Related
- 2004-12-17 CA CA002547825A patent/CA2547825A1/en not_active Abandoned
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699479B (zh) * | 2012-09-27 | 2018-02-02 | 百度在线网络技术(北京)有限公司 | 一种沙盒测试环境构建***及构建方法 |
CN103699479A (zh) * | 2012-09-27 | 2014-04-02 | 百度在线网络技术(北京)有限公司 | 一种沙盒测试环境构建***及构建方法 |
CN103019861A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 虚拟机分配方法及装置 |
CN103902380B (zh) * | 2012-12-26 | 2018-09-07 | 北京百度网讯科技有限公司 | 一种利用沙箱来确定资源分配的方法、装置和设备 |
CN103902380A (zh) * | 2012-12-26 | 2014-07-02 | 北京百度网讯科技有限公司 | 一种利用沙箱来确定资源分配的方法、装置和设备 |
CN104137073B (zh) * | 2012-12-31 | 2017-11-21 | 华为技术有限公司 | 一种获取文件的方法和装置 |
WO2014101208A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 一种获取文件的方法和装置 |
CN104137073A (zh) * | 2012-12-31 | 2014-11-05 | 华为技术有限公司 | 一种获取文件的方法和装置 |
WO2014169779A1 (zh) * | 2013-04-18 | 2014-10-23 | 华为技术有限公司 | 接收请求的方法及cdn服务器 |
CN104113568B (zh) * | 2013-04-18 | 2017-09-05 | 华为技术有限公司 | 接收请求的方法及cdn服务器 |
CN103618758B (zh) * | 2013-10-31 | 2017-01-11 | 新浪网技术(中国)有限公司 | Web服务器及其***资源访问控制方法 |
CN103618758A (zh) * | 2013-10-31 | 2014-03-05 | 新浪网技术(中国)有限公司 | Web服务器及其***资源访问控制方法 |
CN103631715B (zh) * | 2013-11-28 | 2016-11-30 | 北京奇虎科技有限公司 | 应用测试方法、设备及*** |
CN103631715A (zh) * | 2013-11-28 | 2014-03-12 | 北京奇虎科技有限公司 | 应用测试方法、设备及*** |
CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
CN105917627B (zh) * | 2014-02-07 | 2021-03-12 | 甲骨文国际公司 | 云服务定制执行环境方法及*** |
CN103810029A (zh) * | 2014-02-08 | 2014-05-21 | 南开大学 | 一种基于虚拟机出租通用计算能力的***及方法 |
CN104376255B (zh) * | 2014-11-28 | 2017-05-24 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1700214A2 (en) | 2006-09-13 |
WO2005062571A3 (en) | 2006-03-23 |
CA2547825A1 (en) | 2005-07-07 |
US20050177635A1 (en) | 2005-08-11 |
WO2005062571A2 (en) | 2005-07-07 |
CN1894667B (zh) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1894667B (zh) | 分配服务器资源的***和方法 | |
CN101449263B (zh) | 用于实例化网络上的服务的以计算机实现的方法和装备 | |
CN101034990B (zh) | 权限管理方法及装置 | |
CN1175619C (zh) | 对管理的网络环境中的数据分配进行调节的方法 | |
US20170366470A1 (en) | Resolving information in a database environment | |
US6031977A (en) | Object-oriented distributed communications directory service | |
US5594921A (en) | Authentication of users with dynamically configurable protocol stack | |
CN100407154C (zh) | 在分布式网络体系结构中建模和动态部署服务的***和方法 | |
US8250183B1 (en) | System and method for pre-installing of virtual server files | |
US20020069272A1 (en) | System and method for managing server configurations | |
CN110532025B (zh) | 基于微服务架构的数据处理方法、装置、设备及存储介质 | |
US8285876B2 (en) | J2EE application versioning strategy | |
CN111459415A (zh) | 跨云数据迁移方法、装置、设备及存储介质 | |
WO2001001284A2 (en) | Intelligent forms for improved automated workflow processing | |
CN100350342C (zh) | 有选择性地允许和禁止网络上访问软件应用的***及方法 | |
CN1668009A (zh) | 用于分发软件的更新分发***的体系结构和方法 | |
CN1960287A (zh) | 用于在网络上调度作业的方法和设备 | |
US20090282414A1 (en) | Prioritized Resource Access Management | |
US7953622B2 (en) | Implementing meeting moderator failover and failback | |
US7162722B1 (en) | Systems and methods for integrating a plurality of computer resources | |
CN112068807A (zh) | 流程工业应用软件生态***、开发方法及存储介质 | |
CN101043648A (zh) | 业务服务交换*** | |
US20100146120A1 (en) | Caller-specific visibility masks for networking objects | |
CN112822306B (zh) | 代理ip动态管理方法、设备及计算机可读存储介质 | |
Neuman et al. | Resource management for distributed parallel systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100428 Termination date: 20101217 |