CN101198947A - 对web服务第三方扩展的安全且稳定的主存 - Google Patents
对web服务第三方扩展的安全且稳定的主存 Download PDFInfo
- Publication number
- CN101198947A CN101198947A CNA2006800210427A CN200680021042A CN101198947A CN 101198947 A CN101198947 A CN 101198947A CN A2006800210427 A CNA2006800210427 A CN A2006800210427A CN 200680021042 A CN200680021042 A CN 200680021042A CN 101198947 A CN101198947 A CN 101198947A
- Authority
- CN
- China
- Prior art keywords
- isoproc
- communication
- computer
- operation environment
- expansion
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Abstract
在此描述了包括通过通信网络(例如,因特网)的标准web服务集和用于扩展该标准web服务集以执行一个或多个扩展web服务的机制的一个或多个计算机操作环境。由于这些扩展web服务集可能是由未确认或不受信任的源(例如,第三方软件开发商)生成的,所以所述计算机操作系统将扩展web服务与标准web服务集和通信网络隔离开来。此外,每个扩展web服务是与其它服务通信的能力受限的隔离进程(isoproc)。具体而言,每个isoproc的通信能力被仅限于它在其上具有通信的明确许可的相关联的规定通信通道。
Description
相关申请
本申请要求2005年6月20日提交的美国临时专利申请No.60/692,190的优先权。
背景
一些主要的商务Web服务(例如,电子零售商、搜索引擎等)具有由被组合以构建其web应用的许多服务(例如,200个以上)组成的平台。它们给出了软件开发工具包(SDK)以允许第三方使用这些服务(通过web协议)来创建新的应用。商务Web服务之所以希望第三方这么做是因为它为商务Web服务招揽了业务、广告、和/或销售。第三方希望构建这些应用,因为他们从其所招揽的每笔销售的商务Web服务中赚钱。
问题在于这些商务Web服务不具备主存其平台内的第三方代码的良好方法。第三方使用现有技术主存其自己的网站。这对于第三方是不利的,因为他们必须构建网站、需要服务器和网络连接、并管理和运行其服务器(即使他们会雇人来管理其服务器)。取决于具体情形,这会是在联网、安全性、分布式系统、系统升级等方面要求专业技术的非常复杂的任务。该情形对于商务Web服务是不利的,因为它造成了阻碍新的第三方对其平台开发扩展的障碍。
商务Web服务不主存第三方代码,因为不存在廉价而安全的途径来这么做。商务Web服务主存第三方代码的常规选择主要是:将代码放在自己的服务器(非常昂贵)、使用类似于VMWareTM或虚拟服务器(相当昂贵)的虚拟机监视器(VMM)来将代码放在自己的基于软件的虚拟机上或者信任代码(不安全)。
即使使用前两种选择,由于第三方代码具有对所有网络栈的接入,所以商务Web服务必须在其周围设置防火墙(可能为昂贵的静态防火墙)以防止其与服务的服务器不恰当地通信或防止其执行诸如向外界发送多余的垃圾邮件等不恰当的动作。商务Web服务运行第三方代码的另一不切实际的解决方案是诸如太阳公司(Sun)的Java虚拟机(JVM)或.NET AppDomains等的基于语言的虚拟机。虽然比物理硬件或VMM解决方案便宜很多,但基于语言的VM解决方案是非柔性的,从而严重限制了可被安全运行的第三方代码的结构。同时,基于语言的VM解决方案由于扩大了易损面且因为其不能充分地限制资源使用所以牺牲了安全性。
商务Web服务不具有允许它们廉价而安全地将第三方代码主存在其使用服务运行专业知识的数据中心中的常规途径。独立软件供应商(ISV)不具有安全而廉价地赋予他们按其设计需求所指示编写新的扩展并容易地将其嵌入在商务Web服务的服务器中的柔性的常规途径。
仅使用现有的常规途径,用代码创建或扩展现有web应用的开发商必须精通运行数据中心的专业知识。开发商必须忍受服务器调配、服务器管理、修补、操作规划、服务部署、负载平衡、备份等麻烦。
例如,比方说叫做希望软件公司(Hope Software Corporation)(HSC)的虚构公司,希望扩展被称为世界地图Web服务(WMWS)的服务。HSC希望通过将来自各个网站和多清单服务(MLS)房地产清单的房子绘制到来自WMWS的卫星地图上来扩展该WMWS服务。假定WMWS提供了用以构建该应用所需的应用程序设计接口(API),HSC还是必须处理作为web应用所带来的运行负担。假设HSC的应用确实很受欢迎并且在一极为流行的网站中起到极为重要的作用。现在,HSC必须确保它们的应用可升级至处理可能在数小时内出现的额外负荷。HSC必须确保在它们的机器中有一台死机的情况下其应用从容地失败(fail over)。HSC知道如果它们不能每星期7天24小时地服务客户,则有其它公司能够做到。
另一个和家用更近的示例,比方说Bob修改被称为共享文档Web服务(SDWS)的服务。Bob用路由文档的少量工作流逻辑修改SDWS以期在其工作组中获得认可。Bob的工作组现在不得不仅由于一点额外的自定义就要为获得服务器、部署操作系统和SDWS、修补、将其备份等麻烦而担心。总之IT部门无法完全摆脱这一困境。现在有另一种浮置于企业中的SDWS的一次性部署并且对于该服务器管理的任何过失都会造成额外的安全性风险和支持成本。
在又一示例中,比方说HSC可修改(这里“mod”)如EverquestTM或Worldof WarcraftTM等大型多玩家在线游戏(MMOG)。这样,HSC创建其自己的地带、怪兽、以及人工智能(AI)。尽管有客户机端游戏修改的巨大成功,但根本看不到对MMOG的修改,因为MMOG操作员没有用以隔离MMOG服务器上的各个修改的安全而可靠的机制。
存在其中开发商想要扩展现有的web服务的无数情形。即使在公开了对web服务的基于网络的接口时,扩展web服务也是昂贵而困难的,因为开发该扩展的程序员在开发代码之外还被迫成为了服务供应商。
当然也有第三方可在其处租用托管服务器并运行其代码的主宿数据中心。但在此情形中,第三方实质上仅获得了硬件箱(hardware box)。第三方并没有扩展诸如用于在线广告、协作、业务处理、游戏等的现有web服务。第三方仍需为服务部署、负荷平衡、备份等操心。并且这仍然涉及到成本。如果HSC只是想要尝试一个想法,则就使用服务供应商而言,仅用于主存的成本就可能接近每年1000美元。
至此,我们仅描述了因特网的情景。值得明确提出的是,在此描述的技术适用于较广范围的计算情景。例如,需要扩展的“web服务”实际上可以是诸如移动手机设备或个人计算机等任意的计算节点。它甚至可以是诸如对等设备或格型网络等任意的计算系统。考虑如用于分析无线电信号的SETI@home分布式处理系统这样的项目。在该设置中,所参与的每台PC的每个所有者都需要“信任”该SETI@home软件并非恶意的。然而,该软件是相对固定的,例如对于任意一个宇航员而言,快速地使用这数千台计算机的资源来评价新的无线电信号分析算法的不可能的。
这种情景与早先所述的web服务的情景极为相似,只不过上述“商务web服务”在该情形中实际上是分布式计算网格。总之,这可以被建模为需要扩展的web服务。
概要
本文所描述的是将第三方扩展与web服务的其它组件隔离同时明确定义和限制该第三方扩展具有与谁以及如何交互和通信的许可的技术。本文所述的是一个或多个计算操作环境,这些环境包括经由通信网络(例如因特网)的标准web服务集和用于扩展标准web服务集以执行一个或多个经扩展的web服务的机制。因为这些经扩展的web服务可通过未确认或未受信任的源(例如第三方软件开发商)来生成,所以所描述的计算机操作环境将经扩展的web服务与标准web服务集以及通信网络隔离开。此外,每个经扩展的web服务是与其它服务通信的能力受限的隔离进程(isoproc)。具体而言,每个隔离进程的通信能力仅限于所限定的、具有在其上通信的明确许可的通信通道。
本概要被提供用于以简化形式介绍将在以下具体描述中进一步描述的概念的精选。本概要并非旨在标识所要求保护的主题的关键特征或本质特征,也并非旨在用于帮助确定所要求保护的主题的范围。
附图简述
贯穿所有附图使用了相同标号来表示类似要素或特征。
图1是在此所述的实现的一个框图。
图2是在此所述的实现的一个框图。
图3是示出了在此所述的方法实现的一个流程图。
具体描述
这里所描述的是将由第三方开发商(也被称为独立软件供应商,ISV)所写的扩展与web服务的其它组件隔离开来同时明确定义该第三方扩展具有与谁(以及如何)交互和通信的许可的技术。该第三方扩展被与其它应用或服务隔离开,从而使得可以执行未受信任的第三方代码而不用有任何担忧(关于安全性、稳定性以及可靠性)。
这里所描述的是提供易于维护的计算机操作环境(例如,web服务器的操作系统)和用于执行第三方软件的安全主存环境的一个或多个实现。典型计算机操作环境包括通过通信网络(例如,因特网)的标准web服务集以及用于其它未确认或未受信任的源(例如,第三方软件开发商)向该标准web服务集添加扩展的机制。
为了确保安全性,所述计算机操作系统将该经扩展的web服务与标准web服务集以及通信网络隔离开来。此外,每个经扩展的web服务是与其它服务通信的能力受限的隔离进程(isoproc)。具体而言,每个隔离进程的通信能力仅限于所限定的、具有在其上通信的明确许可的通信通道。
上下文和示例性情景
在此所述的示例性实施例是对由许多软件公司和外方所提供的现有web服务的补充。这些示例性实施例是针对如在“背景”章节所介绍的Bob和希望软件公司(HSC)的开发商。这些开发商希望扩展现有服务或创建新的服务而无需操心服务运行。
例如,假设HSC正在西雅图其所关注的一些邻近区域-Queen Anne和Leschi-寻找要买的房子。HSC每天花费近45分钟来梳理用于各个基于web的房地产编目服务上的销售编目的房子。HSC看到了世界地图Web服务(WMWS)并感叹如果看到用于销售的房子被绘制在WMWS中的地图上将是多么好的事情。这只是HSC在其业余时间要做的副项目。
HSC写入其将来自各个基于web的房地产编目服务的数据显示到WMWS上的代码。由于HSC无需考虑将其主存在哪、花费多少成本、购买服务器等因素,所以HSC之后仅需简单地“发布”该解决方案以使其友人也可使用它。随着HSC解决方案欢迎度的增加,HSC开始添加如犯罪率统计、销售项目、更多城市、移动设备接入、以及警报等的更多特征。HSC购买了域名以及各种搜索引擎关键字以为其应用招揽业务。该web服务(它采用了本文所述的示例性实施例中的至少一个)继续为其现在以百万计的用户群运行该解决方案。
对于该情景,web服务主存运行示例性实施例中的至少一个的机器集群,ISV在其上将其应用构建到现有基础设施端。一种想法是采用现有的web服务并增加其数据中心中采用示例性实施例中的至少一个的服务器。任何第三方可扩展性代码在由本文所述的示例性实施例的至少一个所提供的隔离边界中运行。为了获得数据,该代码仅使用标准web服务API来访问现有的服务基础设施。
这些示例性实施例可以是大型多玩家在线游戏(MMOG)的平台。允许终端用户修改(“mod”)其MMOG体验将会改善他们的体验并可能会减少订户流失。MMOG是大规模多用户分布式游戏或模拟器的一个示例。
有时每星期花费超过40小时来玩游戏的铁杆游戏玩家通常是玩MMOG。MMOG产业的一个重要的流失源是由在用户感觉已经征服了游戏所提供的全部挑战时的厌倦以及用户在游戏世界中投入了一年或更多时间之后的流动所引起的。通常用户花费约两年时间玩一个游戏。订户群的减少明显会导致利润显著下降。
一种使订户流失最小化的方法是不断以新的等级、技能、角色等来丰富该游戏。最佳射手游戏已经在利用用户社区来创建‘mod’上取得了巨大成功。这些mod包括复杂的新技能、经改进的游戏引擎、新等级、新主题、新角色等。另一方面,MMOG还不能获得用户贡献的回报。
在此所述的一个示例性实施例可提供具有游戏工作室的mod工具包。这样,用户将能够创建mod,而MMOG可确信安全且可靠地运行这些mod。
使用在此所述的示例性实施例的方法的四个关键的理想特征在于:安全性、可升级性、可靠性和低成本。
安全性宗旨是起主要推动作用的特征。安全性意味着该系统可采用任意未知代码并安全地运行它,而无需担心破坏操作系统本身、数据中心、或其它程序。这里有至少两个值得注意的情形:由于基于扩展的内插件有隐错或恶意代码而导致不利的影响。不利影响可能意味着例如,必须关闭服务、数据污染、服务假冒等。
就可靠性来说实际上有两个方面:方案本身的可靠性,以及数据中心的可靠性。数据中心不应由于有隐错的第三方代码而遭遇停止运行或其它可靠性问题。类似地,正确代码的作者也不会希望数据中心故障(例如,硬驱动器故障)影响其代码。
另外,示例性实施例可采用旨在对扩展隐藏数据的“伪装(cloaking)机制”。例如,示例性实施例可处理该web服务的消费者的订单,但该web服务可能不希望将某些敏感信息提供给该扩展。相反,该web服务在将信息提供给扩展时用伪信息或替换信息来代替这些敏感信息。因此,该扩展决不会发现该敏感信息。
隔离进程(IsoProc)
图1示出了具有一个或多个处理核心(例如,处理器和相关硬件)以及一个或多个存储器子系统的典型主计算系统100。该主计算系统100可以是单个计算机或协同工作的多个互联计算机。
如图1中所示,主计算系统100具有两个不同的存储器子系统:存储器110和硬件/固件140。存储器110是可在其中存储软件的典型存储器子系统的一个示例。存储器110可以是可由主计算系统100访问的任何可用的处理器可读介质。存储器110可以是易失性或非易失性介质中的任意一种。另外,它也可以是可移动或不可移动介质中的任意一种。硬件/固件140是可在其中存储计算机可执行指令的典型硬件(例如,ROM)或固件的一个示例。
在图1中,存储器110和硬件/固件140被描绘为两个分离区域以强调它们的不同特性,但实际上,高层的操作系统不会在它们之间作较大区分。实质上,存储在硬件/固件140中的可执行指令可以是存储器110的可寻址存储器范围的一部分。
主计算系统100具有提供供诸如SIP 130和SIP 140等软件隔离进程(SIP)使用的架构的操作系统(由存储器110中的OS内核120表示)。在主计算系统100中,该OS中的非内核代码在SIP中运行。SIP通过强类型化通信通道在彼此之间、与OS、以及与通信网络180通信。具体而言,SIP仅能通过它具有明确使用许可(来自OS)的通信通道来与其它进程和内核通信。该许可定义了SIP与谁以及如何与其它进程、与OS、以及通信网络180通信。
如图1中所示,硬件/固件140显示了硬件隔离进程150(HIP)和固件隔离进程160(FIP)的示例。这实质上与SIP相等同,区别在于它们的代码不是存储在工作的主存储器中(如存储器110)。
作为包含性的术语名词,这里使用了术语“隔离进程”及其缩写表示“isoproc”。所定义的“隔离进程”及其示例明确包括SIP、HIP、以及FIP。所以,除非上下文清楚地指示,否则这里对“isoproc”的引用包括SIP、HIP、和/或FIP的概念在内。
isoproc与传统OS进程稍有不同。isoproc具有较强的隔离边界(在隔离方面与VM非常相似)。一个isoproc除了通过类型化通道通信之外不能与另一isoproc通信或改变其状态——即没有共享存储器等的概念。该隔离边界仅是该安全性模型中的一较强和较重要的层。实际上,isoproc仅能通过对其具有明确许可的用于此类通信的通信通道来通信。
OS所授予的明确许可定义了主题isoproc的相关联规定通信通道的通信属性,其中这些属性包括以下属性中的一个或多个:
·主题isoproc可与哪些其它isoproc通信;
·该系统上isoproc可跨通道访问的资源;
·该系统上isoproc可与其交互的其它进程;
·接入通信机制(例如,TCP或web协议)以与其它系统通信的能力;
·与特定系统通信的能力;
·通信类型;
·通信的速率、量、以及时间
由于OS确切地知道在每个isoproc中运行什么代码从而使安全性模型得到进一步加强。isoproc中的代码在具有公知且可描述特性的分开的隔离区域中运行。此外,在每个基于软件的isoproc中运行的代码都被检验以确保存储器安全且不含任何在硬件上具有特权的指令。多个isoproc可在同一硬件保护域中运行,甚至是在OS内核120的硬件保护域中运行。通过在OS内核120的同一硬件保护域中运行,在不同isoproc中调用代码的成本极低。
以下美国专利申请通过引用被包括于此:
·2005年4月29日提交且题为“Inter-Process Interference Elimination(进程间干扰消除)”的申请No.11/118,684;
·2004年12月7日提交且题为“Inter-Process Communications EmployingBi-directional Message Conduits(采用双向消息管道的进程间通信)”的申请No.11/007,655;
·2004年12月7日提交且题为“Self-Describing Artifacts and ApplicationAbstractions(自描述工件和应用抽象)”的申请No.11/007,808。
在此所述的实施例采用了在包括于此的这些引用中所描述的技术。具体而言,用于进程间冲突消除和进程间通信的技术可被用于isoproc。换言之,这些技术被用于将第三方扩展与该web服务的其它组件隔离开,同时明确地定义它具有与谁通信的许可。
示例性环境
图2示出了具有支持和提供isoproc的操作系统(由OS内核210表示)的主计算环境200。该主计算环境200提供了用于运行诸如扩展isoproc 220等第三方代码的廉价而安全的主存环境。第三方(例如,软件或web服务开发商)写入他们的扩展isoproc 220从而使代码在主计算环境200中其自己的isoproc中运行。
OS 210包括通信通道管制器212,它是OS当中明确授予isoproc使用通信通道的许可的组件。该许可定义了规定通信通道的通信属性。在没有来自通信通道管制器212的明确许可的情况下,扩展isoproc 220完全无法与全域中任何地方的任何其它代码通信(甚至OS网络栈或OS文件系统也不行)。
对于该示例性实施例,扩展isoproc 220通过通信通道232接收来自网络服务isoproc 230的传入请求。网络服务isoproc 230起扩展isoproc 220与诸如因特网的外部通信网络260之间的中介的作用。网络服务isoproc 230负责处理扩展isoproc220与外界(例如,因特网160)之间的通信。在一替换性实施例中,当扩展isoproc220已被静态地检查和检验不会执行违背外部通信网络的任何违禁操作时,网络服务isoproc 230可用对外部通信网络260的直接连接来代替。
扩展isoproc 220使用OS提供的跨进程通信通道与该主计算系统上的web服务代理isoproc 240通信。web服务代理isoproc 240起扩展isoproc 220与诸如包含世界地图web服务的地图的数据库系统等其它内部web服务250之间的中介。web服务代理isoproc 240负责处理来自扩展isoproc 220的请求以及与web服务的服务器250通信。为此,可采用诸如SOAP等任何有效并可用的协议。在一替换性实施例中,当web服务代理isoproc 240的代码当中的过滤特征被可检验地插入到扩展isoproc 220代码中时,web服务代理isoproc 240可被替代。
如所描述的,通道232和242仅是扩展isoproc 220具有明确使用许可的两个由OS提供的跨进程通信通道。
网络服务isoproc 230和web服务代理isoproc 240可被统称为“协调器(mediator)”。这是因为它们起扩展isoproc 220与诸如web服务服务器250和因特网260等其它数据源之间的中介或协调器的作用。
每个isoproc具有对OS内核的单独和分开的接口(通常被称为应用程序设计接口(API)或应用二进制接口(ABI)),每个isoproc可通过其从OS请求计算资源,诸如创建执行的新线程,但不能直接影响任何其它isoproc的状态。该接口允许扩展isoproc 220控制自身的执行,但不能影响其它isoproc的执行。通过设计,该接口不会被破坏以作为跨进程通信的机制。在没有isoproc的开发商的明确许可时,不能截取、修改isoproc对该内核的接口或侦听其内容。
在该示例性环境下:
·扩展isoproc 220仅可与诸如网络服务isoproc 230和web服务代理isoproc 240等协调器通信。
·在这些协调器处理所有分布式计算问题时,扩展isoproc 220的作者无需写入分布式代码。这是合乎需要的,因为web服务开发商通常已经确定了如何使用已知的分布式计算解决方案以使其web服务高度可用。他们可在这些协调器中再次使用相同的技术。
·扩展isoproc 220通过完全指定的、静态可检验的协议与这两个协调器(以及任何其它isoproc)通信。
诸如移动手机设备或个人计算机等任意的计算节点。它甚至可以是诸如对等设备或格型网络等任意的计算系统。
考虑如用于分析无线电信号的SETI@home分布式处理系统这样的项目。在该设置中,所参与的每台个人计算机的每个所有者都需要“信任”该SETI@home软件并非恶意的。然而,为了确保信任水平,该软件是相对固定且不可改变的。因此,例如,对于任意一个宇航员而言,快速地使用这数千台计算机的资源来评价新的无线电信号分析算法是不可能的。使用在此所述的技术,该软件可被修改并仍可被信任。
该情景与早先所述的web服务情景相类似,只不过上述“商务web服务”在该情形中实际上是分布式计算网格。总之,这可以被模型化为需要扩展的web服务。
方法实现
图3示出了为被隔离的web服务扩展提供安全、稳定、可靠、且可升级的计算操作环境的方法300。方法300是由如图1和/或2中所示的各种组件中的一个或多个来实现的。此外,该方法300可以软件、硬件、固件或其组合来执行。
为了便于理解,该方法在图3中被描述为由多个独立框所表示的各个步骤;然而,这些单独描述的步骤不应被理解为与其执行具有依存性的必要顺序。另外,出于讨论的目的,方法300是参照图1和/或2来描述的。同时为了讨论的目的,特定组件被指示为执行特定功能;然而其它组件(或组件的组合)也可执行该特定功能。
在图3的310,计算机操作环境(诸如web服务主计算环境200)通过通信网络(诸如因特网260)提供标准web服务集。
在320,计算机操作环境提供用于扩展该标准web服务集以执行一个或多个扩展进程的机制。
在图3的330,计算机操作环境将这些扩展进程(“扩展isoproc”)与标准web服务集和通信网络隔离开。这些web服务是其它isoproc。每个isoproc的通信能力仅被限于它具有明确许可在其上通信的规定通信通道。
结论
这里所述的技术可以包括(但并不限于)程序模块、通用和专用计算系统、网络服务器和装备、专用电子和硬件在内的许多方式来实现,也可被实现为一个或多个计算机网络的部分。这里所述的技术是可以实现的。
虽然以结构特征和/或方法步骤的特有语言方式描述了上述一个或多个实现,但应该理解的是没有所述的这些具体特征或步骤也可实践其它实现。当然,具体特征和步骤是作为一个或多个实现的优选形式来公开的。
Claims (22)
1.一个或多个计算机操作环境,包括:
主计算系统,具有一个或多个处理核心以及一个或多个存储器子系统,所述主计算系统被配置成执行一个或多个隔离进程(isoproc)的计算机可执行指令,其中每个isoproc通信的能力被仅限于它在其上具有通信的明确许可的规定通信通道;
通信通道管制器,被配置成选择性地授予一个或多个isoproc在一个或多个规定的通信通道上通信的明确许可。
2.如权利要求1所述的一个或多个计算机操作环境,其特征在于,在主计算系统上执行的isoproc是选择自包括硬件隔离进程(HIP)、固件隔离进程(FIP)、和软件隔离进程(SIP)的组。
3.如权利要求1所述的一个或多个计算机操作环境,其特征在于,由所述通信通道管制器授予的所述明确许可定义了规定通信通道的通信属性。
4.如权利要求1所述的一个或多个计算机操作环境,其特征在于,由所述通信通道管制器授予的所述明确许可定义了主题isoproc的规定通信通道的通信属性,其中此类属性包括以下属性中的一个或多个:
·主题isoproc可与哪些其它isoproc通信;
·所述系统上可由所述isoproc跨通道访问的资源;
·所述系统上所述isoproc可与其交互的其它进程;
·接入通信机制(例如,TCP或web协议)以与其它系统通信的能力;
·与特定系统通信的能力;
·通信的类型;
·通信的速率、量、以及时间
5.如权利要求1所述的一个或多个计算机操作环境,其特征在于,还包括被配置成协调通过多个isoproc的通信的协调器。
6.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述一个或多个计算操作环境是web服务。
7.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述一个或多个计算操作环境是大规模多用户分布式游戏或模拟器。
8.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述一个或多个计算操作环境是大型多玩家在线游戏。
9.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述通信通道管制器还被配置成防止正在执行的主题isoproc直接影响其它正在执行的isoproc的执行。
10.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述通信通道管制器还被配置成防止正在执行的主题isoproc与除规定的其它正在执行的isoproc的集合之外的其它正在执行的isoproc通信。
11.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述通信通道管制器还被配置成防止正在执行的主题isoproc访问除规定的其它正在执行的isoproc的集合之外的其它正在执行的isoproc的资源。
12.如权利要求1所述的一个或多个计算机操作环境,其特征在于,所述通信通道管制器还被配置成防止正在执行的主题isoproc通过通信网络与其它计算系统通信,除非所述正在执行的主题isoproc被明确被许可这么做。
13.一个或多个计算机操作环境,其特征在于,还包括被配置成协调通过一个或多个isoproc和通信网络的通信的协调器,所述网络在所述主计算系统外部。
14.如权利要求1所述的一个或多个计算机操作环境,其特征在于,还包括被配置成对在所述主计算系统上执行的一个或多个isoproc隐藏数据的伪装或过滤机构。
15.具有计算机可执行指令的一个或多个计算机可读介质,所述指令在由计算机执行时实施包括以下动作的方法:
执行规定的一个或多个隔离进程(isoproc)的标准集合的指令,其中每个isoproc通信的能力被仅限于它在其上具有通信的明确许可的相关联的规定通信通道;
执行不构成所述标准集合的一部分的扩展isoproc的指令,所述扩展isoproc具有与所述标准集合当中的一个或多个规定成员通信的明确许可,并由此不能与所述标准集合当中的其它成员通信。
16.如权利要求15所述的一个或多个计算机可读介质,其特征在于,所述规定的一个或多个isoproc的标准集合表示大型多玩家在线游戏(MMOG),而所述扩展isoproc是对MMOG的“修改”。
17.如权利要求15所述的一个或多个计算机可读介质,其中所述执行扩展isoproc的指令的特征进一步在于,所述扩展isoproc与外部通信网络通信的能力是由通过协调isoproc来通信的明确许可提供的。
18.具有计算机可执行指令的一个或多个计算机可读介质,所述指令在由计算机执行时实施包括以下动作的方法:
通过通信网络提供标准web服务集;
提供用于扩展所述标准web服务集以执行一个或多个扩展进程的机制;
将所述扩展进程与所述标准web服务集以及与所述通信网络隔离。
19.如权利要求18所述的一个或多个计算机可读介质,其特征在于,所述一个或多个扩展进程中每一个与所述web服务中的成员以及与其它扩展进程通信的能力被仅限于扩展进程在其上具有通信的明确许可的规定通信通道。
20.如权利要求18所述的一个或多个计算机可读介质,其特征在于,所述标准web服务集中的每个成员以及所述一个或多个扩展进程是选择自包括硬件隔离进程(HIP)、固件隔离进程(FIP)、和软件隔离进程(SIP)的组。
21.如权利要求18所述的一个或多个计算机可读介质,其中所述隔离动作的特征在于防止所述扩展进程冒充所述标准web服务集或其任何成员。
22.如权利要求18所述的一个或多个计算机可读介质,其中所述隔离动作的特征在于定义扩展进程可与哪些其它进程通信以及管制其间的此类通信。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69219005P | 2005-06-20 | 2005-06-20 | |
US60/692,190 | 2005-06-20 | ||
US11/275,160 | 2005-12-15 | ||
US11/275,160 US8849968B2 (en) | 2005-06-20 | 2005-12-15 | Secure and stable hosting of third-party extensions to web services |
PCT/US2006/019475 WO2007001679A2 (en) | 2005-06-20 | 2006-05-19 | Secure and stable hosting of third-party extensions to web services |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101198947A true CN101198947A (zh) | 2008-06-11 |
CN101198947B CN101198947B (zh) | 2013-01-30 |
Family
ID=37595644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800210427A Active CN101198947B (zh) | 2005-06-20 | 2006-05-19 | 对web服务第三方扩展的安全且稳定的主存 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8849968B2 (zh) |
EP (1) | EP1896978B1 (zh) |
JP (1) | JP5043003B2 (zh) |
KR (1) | KR101343258B1 (zh) |
CN (1) | CN101198947B (zh) |
BR (1) | BRPI0611985A2 (zh) |
MX (1) | MX2007016218A (zh) |
RU (1) | RU2424556C2 (zh) |
WO (1) | WO2007001679A2 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US10068238B2 (en) * | 2007-05-23 | 2018-09-04 | Excalibur Ip, Llc | Incentive-based system and method for third-party web application development and publication |
US20090183155A1 (en) * | 2008-01-15 | 2009-07-16 | Microsoft Corporation | Isolation of Content by Processes in an Application |
US20090265755A1 (en) * | 2008-04-18 | 2009-10-22 | International Business Machines Corporation | Firewall methodologies for use within virtual environments |
US9594900B2 (en) * | 2008-12-09 | 2017-03-14 | Microsoft Technology Licensing, Llc | Isolating applications hosted by plug-in code |
US20100199357A1 (en) * | 2009-02-02 | 2010-08-05 | Microsoft Corporation | Secure hosting for untrusted code |
US10268522B2 (en) * | 2009-11-30 | 2019-04-23 | Red Hat, Inc. | Service aggregation using graduated service levels in a cloud network |
US9055080B2 (en) * | 2009-12-14 | 2015-06-09 | Citrix Systems, Inc. | Systems and methods for service isolation |
US8025514B1 (en) | 2010-04-23 | 2011-09-27 | Leviton Manufacturing Co., Inc. | Shroud to prevent manipulation of a release mechanism of a plug |
US8038456B1 (en) | 2010-04-23 | 2011-10-18 | Leviton Manufacturing Co., Inc | Tamper prevention system having a shroud to partially cover a release mechanism |
US20120166941A1 (en) * | 2010-12-24 | 2012-06-28 | Microsoft Corporation | Content processing with extensibility |
US9524531B2 (en) | 2011-05-09 | 2016-12-20 | Microsoft Technology Licensing, Llc | Extensibility features for electronic communications |
US9235803B2 (en) * | 2012-04-19 | 2016-01-12 | Microsoft Technology Licensing, Llc | Linking web extension and content contextually |
JP5924159B2 (ja) * | 2012-06-29 | 2016-05-25 | 大日本印刷株式会社 | 情報処理装置 |
US9456003B2 (en) | 2013-07-24 | 2016-09-27 | At&T Intellectual Property I, L.P. | Decoupling hardware and software components of network security devices to provide security software as a service in a distributed computing environment |
US9058193B2 (en) * | 2013-11-14 | 2015-06-16 | Google Inc. | Methods and systems for providing compatibility of applications with multiple versions of an operating system |
US10659523B1 (en) | 2014-05-23 | 2020-05-19 | Amazon Technologies, Inc. | Isolating compute clusters created for a customer |
US9348625B2 (en) | 2014-05-23 | 2016-05-24 | Google Inc. | Application access to native and bundled libraries |
EP3395120A4 (en) * | 2015-12-22 | 2019-08-07 | Intel Corporation | ISOLATED REMOTE VIRTUALIZED MOBILE REACH ENVIRONMENT |
US10789058B2 (en) * | 2018-05-30 | 2020-09-29 | Microsoft Technology Licensing, Llc | Extensibility of unified platform |
US11625382B2 (en) | 2019-06-21 | 2023-04-11 | Einstein Technologies Inc. | Blockchain as a service method, apparatus, and system |
US11182508B1 (en) | 2021-02-23 | 2021-11-23 | Polyverse Corporation | Enhanced version retention systems and methods |
US11461481B1 (en) | 2021-06-04 | 2022-10-04 | Polyverse Corporation | Encrypted to be executed software code and execution environment apparatuses, systems, and methods |
US11216299B1 (en) | 2021-07-06 | 2022-01-04 | Polyverse Corporation | Computing environment multi-aliasing systems and methods |
US11354405B1 (en) | 2021-07-06 | 2022-06-07 | Polyverse Corporation | Code snippet mobilization systems and methods |
Family Cites Families (192)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4916637A (en) * | 1987-11-18 | 1990-04-10 | International Business Machines Corporation | Customized instruction generator |
US4885684A (en) | 1987-12-07 | 1989-12-05 | International Business Machines Corporation | Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network |
JPH01292537A (ja) | 1988-05-20 | 1989-11-24 | Hitachi Ltd | 規則検証型情報処理システム |
US5031089A (en) * | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
US5057996A (en) | 1989-06-29 | 1991-10-15 | Digital Equipment Corporation | Waitable object creation system and method in an object based computer operating system |
CA2025160A1 (en) * | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed applications architecture |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
JP2720904B2 (ja) * | 1990-08-31 | 1998-03-04 | 富士通株式会社 | 自己記述によるデータベース管理システムの構成方法および開発/変更方法 |
EP0490636B1 (en) | 1990-12-14 | 1998-09-09 | Sun Microsystems, Inc. | Method and apparatus for interprocess message switching |
US5317568A (en) * | 1991-04-11 | 1994-05-31 | Galileo International Partnership | Method and apparatus for managing and facilitating communications in a distributed hetergeneous network |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5469571A (en) | 1991-07-15 | 1995-11-21 | Lynx Real-Time Systems, Inc. | Operating system architecture using multiple priority light weight kernel task based interrupt handling |
US5590281A (en) | 1991-10-28 | 1996-12-31 | The United States Of Americas As Represented By The Secretary Of The Navy | Asynchronous bidirectional application program processes interface for a distributed heterogeneous multiprocessor system |
JPH05119987A (ja) | 1991-10-30 | 1993-05-18 | Hitachi Ltd | 動的仕様の検証ルールの図形式定義方法 |
DE69230462T2 (de) * | 1991-11-19 | 2000-08-03 | Sun Microsystems Inc | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln |
JPH05181919A (ja) | 1991-12-27 | 1993-07-23 | Mitsubishi Electric Corp | システム設計支援装置 |
US5349682A (en) | 1992-01-31 | 1994-09-20 | Parallel Pcs, Inc. | Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors |
US5361359A (en) | 1992-08-31 | 1994-11-01 | Trusted Information Systems, Inc. | System and method for controlling the use of a computer |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
US5481717A (en) * | 1993-04-12 | 1996-01-02 | Kabushiki Kaisha Toshiba | Logic program comparison method for verifying a computer program in relation to a system specification |
US6714933B2 (en) | 2000-05-09 | 2004-03-30 | Cnet Networks, Inc. | Content aggregation method and apparatus for on-line purchasing system |
GB9505939D0 (en) | 1995-03-23 | 1995-05-10 | Intelligence Quotient Int | A method of operating a computer system |
US5455951A (en) | 1993-07-19 | 1995-10-03 | Taligent, Inc. | Method and apparatus for running an object-oriented program on a host computer with a procedural operating system |
JPH0756754A (ja) | 1993-08-03 | 1995-03-03 | Internatl Business Mach Corp <Ibm> | マルチメディア・グループ資源割当て装置及び方法 |
GB9320982D0 (en) | 1993-10-12 | 1993-12-01 | Ibm | A data processing system |
EP0671685B1 (en) | 1994-03-08 | 1998-11-04 | Digital Equipment Corporation | Method and apparatus for detecting and executing cross-domain calls in a computer system |
US5590001A (en) | 1994-03-15 | 1996-12-31 | Fujitsu Limited | Breather filter unit for magnetic disk drive |
US6115819A (en) | 1994-05-26 | 2000-09-05 | The Commonwealth Of Australia | Secure computer architecture |
US5551051A (en) * | 1994-09-20 | 1996-08-27 | Motorola, Inc. | Isolated multiprocessing system having tracking circuit for verifyng only that the processor is executing set of entry instructions upon initiation of the system controller program |
US5794052A (en) * | 1995-02-27 | 1998-08-11 | Ast Research, Inc. | Method of software installation and setup |
US6006328A (en) * | 1995-07-14 | 1999-12-21 | Christopher N. Drake | Computer software authentication, protection, and security system |
US5752032A (en) | 1995-11-21 | 1998-05-12 | Diamond Multimedia Systems, Inc. | Adaptive device driver using controller hardware sub-element identifier |
US6009476A (en) | 1995-11-21 | 1999-12-28 | Diamond Multimedia Systems, Inc. | Device driver architecture supporting emulation environment |
US5754776A (en) * | 1995-12-28 | 1998-05-19 | Intel Corporation | Re-prioritizing background data transfers in multipoint conferencing |
US5951639A (en) | 1996-02-14 | 1999-09-14 | Powertv, Inc. | Multicast downloading of software and data modules and their compatibility requirements |
US5845129A (en) | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
US6292941B1 (en) | 1996-04-30 | 2001-09-18 | Sun Microsystems, Inc. | Operating system installation |
US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
US5944821A (en) * | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6003129A (en) | 1996-08-19 | 1999-12-14 | Samsung Electronics Company, Ltd. | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture |
DE19729529B4 (de) * | 1996-09-13 | 2010-04-08 | Kolbus Gmbh & Co. Kg | Verfahren und Vorrichtung zum Herstellen eines Buches |
US5958050A (en) | 1996-09-24 | 1999-09-28 | Electric Communities | Trusted delegation system |
US5974572A (en) | 1996-10-15 | 1999-10-26 | Mercury Interactive Corporation | Software system and methods for generating a load test using a server access log |
US5923878A (en) * | 1996-11-13 | 1999-07-13 | Sun Microsystems, Inc. | System, method and apparatus of directly executing an architecture-independent binary program |
US5878408A (en) | 1996-12-06 | 1999-03-02 | International Business Machines Corporation | Data management system and process |
US5931938A (en) * | 1996-12-12 | 1999-08-03 | Sun Microsystems, Inc. | Multiprocessor computer having configurable hardware system domains |
US5884018A (en) | 1997-01-28 | 1999-03-16 | Tandem Computers Incorporated | Method and apparatus for distributed agreement on processor membership in a multi-processor system |
US6144992A (en) | 1997-05-09 | 2000-11-07 | Altiris, Inc. | Method and system for client/server and peer-to-peer disk imaging |
US6658447B2 (en) | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6247128B1 (en) * | 1997-07-22 | 2001-06-12 | Compaq Computer Corporation | Computer manufacturing with smart configuration methods |
US6038399A (en) | 1997-07-22 | 2000-03-14 | Compaq Computer Corporation | Computer manufacturing architecture with two data-loading processes |
US6078744A (en) * | 1997-08-01 | 2000-06-20 | Sun Microsystems | Method and apparatus for improving compiler performance during subsequent compilations of a source program |
US5963743A (en) | 1997-08-29 | 1999-10-05 | Dell Usa, L.P. | Database for facilitating software installation and testing for a build-to-order computer system |
US6072953A (en) * | 1997-09-30 | 2000-06-06 | International Business Machines Corporation | Apparatus and method for dynamically modifying class files during loading for execution |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
US6351850B1 (en) * | 1997-11-14 | 2002-02-26 | Frank Van Gilluwe | Computer operating system installation |
US6182275B1 (en) * | 1998-01-26 | 2001-01-30 | Dell Usa, L.P. | Generation of a compatible order for a computer system |
IL123512A0 (en) | 1998-03-02 | 1999-03-12 | Security 7 Software Ltd | Method and agent for the protection against hostile resource use access |
US6912692B1 (en) * | 1998-04-13 | 2005-06-28 | Adobe Systems Incorporated | Copying a sequence of commands to a macro |
US6092189A (en) * | 1998-04-30 | 2000-07-18 | Compaq Computer Corporation | Channel configuration program server architecture |
US6161051A (en) | 1998-05-08 | 2000-12-12 | Rockwell Technologies, Llc | System, method and article of manufacture for utilizing external models for enterprise wide control |
US6080207A (en) * | 1998-06-04 | 2000-06-27 | Gateway 2000, Inc. | System and method of creating and delivering software |
US6904519B2 (en) * | 1998-06-12 | 2005-06-07 | Microsoft Corporation | Method and computer program product for offloading processing tasks from software to hardware |
US6279111B1 (en) * | 1998-06-12 | 2001-08-21 | Microsoft Corporation | Security model using restricted tokens |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6629152B2 (en) | 1998-06-29 | 2003-09-30 | International Business Machines Corporation | Message passing using shared memory of a computer |
US6434694B1 (en) * | 1998-06-29 | 2002-08-13 | Sun Microsystems, Inc. | Security for platform-independent device drivers |
US6202147B1 (en) | 1998-06-29 | 2001-03-13 | Sun Microsystems, Inc. | Platform-independent device drivers |
US6321334B1 (en) * | 1998-07-15 | 2001-11-20 | Microsoft Corporation | Administering permissions associated with a security zone in a computer system security model |
DE19837871C2 (de) * | 1998-08-20 | 2000-06-08 | Manfred Broy | Verfahren zum automatischen Erzeugen eines Programms |
US6324622B1 (en) | 1998-08-24 | 2001-11-27 | International Business Machines Corporation | 6XX bus with exclusive intervention |
US6039399A (en) * | 1998-09-03 | 2000-03-21 | Fisher Dynamics Corporation | Linear seat recliner |
US6029174A (en) | 1998-10-31 | 2000-02-22 | M/A/R/C Inc. | Apparatus and system for an adaptive data management architecture |
US6066182A (en) * | 1998-11-05 | 2000-05-23 | Platinum Technology Ip, Inc. | Method and apparatus for operating system personalization during installation |
US6438549B1 (en) * | 1998-12-03 | 2002-08-20 | International Business Machines Corporation | Method for storing sparse hierarchical data in a relational database |
US6842782B1 (en) * | 1998-12-08 | 2005-01-11 | Yodlee.Com, Inc. | Method and apparatus for tracking functional states of a web-site and reporting results to web developers |
US6862735B1 (en) | 1999-02-11 | 2005-03-01 | Sun Microsystems, Inc. | Mechanism by which platform independent software may bind to and access platform dependent software |
US6732220B2 (en) * | 1999-02-17 | 2004-05-04 | Elbrus International | Method for emulating hardware features of a foreign architecture in a host operating system environment |
US6341371B1 (en) * | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
US6442754B1 (en) * | 1999-03-29 | 2002-08-27 | International Business Machines Corporation | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software |
US6546546B1 (en) * | 1999-05-19 | 2003-04-08 | International Business Machines Corporation | Integrating operating systems and run-time systems |
US6782541B1 (en) | 1999-05-28 | 2004-08-24 | Avaya Technology Corp. | System and method of exchanging information between software modules |
GB9920676D0 (en) * | 1999-09-01 | 1999-11-03 | Tao Group Ltd | Translating and executing object-oriented computer programs |
AU7735600A (en) | 1999-10-01 | 2001-05-10 | Infraworks Corporation | Port blocking method and system |
US7167867B1 (en) * | 1999-10-05 | 2007-01-23 | Emc Corporation | Self-describing file system |
US6715144B2 (en) * | 1999-12-30 | 2004-03-30 | International Business Machines Corporation | Request based automation of software installation, customization and activation |
US6748592B1 (en) * | 2000-02-14 | 2004-06-08 | Xoucin, Inc. | Method and apparatus for protectively operating a data/information processing device |
US6567974B1 (en) | 2000-02-25 | 2003-05-20 | Sun Microsystems, Inc. | Small memory footprint system and method for separating applications within a single virtual machine |
US7047534B2 (en) | 2000-03-17 | 2006-05-16 | Microsoft Corporation | Simplified device drivers for hardware devices of a computer system |
US6871344B2 (en) * | 2000-04-24 | 2005-03-22 | Microsoft Corporation | Configurations for binding software assemblies to application programs |
US7155713B1 (en) | 2000-04-27 | 2006-12-26 | Microsoft Corporation | Componentized operating system |
US7310801B2 (en) * | 2000-04-27 | 2007-12-18 | Microsoft Corporation | Servicing a component-based software product throughout the software product lifecycle |
US7124408B1 (en) | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US6868539B1 (en) | 2000-06-28 | 2005-03-15 | Microsoft Corp. | System and method providing single application image |
US6816905B1 (en) | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US7089289B1 (en) | 2000-07-18 | 2006-08-08 | International Business Machines Corporation | Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices |
US6973517B1 (en) | 2000-08-31 | 2005-12-06 | Hewlett-Packard Development Company, L.P. | Partition formation using microprocessors in a multiprocessor computer system |
JP3664473B2 (ja) | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7260845B2 (en) | 2001-01-09 | 2007-08-21 | Gabriel Kedma | Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems |
US7613930B2 (en) | 2001-01-19 | 2009-11-03 | Trustware International Limited | Method for protecting computer programs and data from hostile code |
US7870535B2 (en) | 2001-02-22 | 2011-01-11 | Accenture Global Services Gmbh | Distributed development environment for building internet applications by developers at remote locations |
JP3610915B2 (ja) * | 2001-03-19 | 2005-01-19 | 株式会社デンソー | 処理実行装置及びプログラム |
US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7272831B2 (en) * | 2001-03-30 | 2007-09-18 | Intel Corporation | Method and apparatus for constructing host processor soft devices independent of the host processor operating system |
US20030031404A1 (en) * | 2001-08-07 | 2003-02-13 | Corvis Corporation | Optical transmission systems including optical components and optical filters and methods of use therein |
RU2307388C2 (ru) | 2001-08-13 | 2007-09-27 | Квэлкомм Инкорпорейтед | Привилегия доступа на уровне приложений к области памяти компьютерного устройства |
US7036114B2 (en) * | 2001-08-17 | 2006-04-25 | Sun Microsystems, Inc. | Method and apparatus for cycle-based computation |
GB2381336B (en) * | 2001-08-21 | 2005-09-28 | Silicon Infusion Ltd | Object orientated heterogeneous multi-processor platform |
IL145105A (en) | 2001-08-23 | 2007-02-11 | Gregory Bondar | Method and system for providing a web service by a plurality of web domains through a single ip address |
US6988261B2 (en) * | 2001-08-24 | 2006-01-17 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions in Java computing environments |
CA2404552C (en) * | 2001-09-21 | 2008-12-09 | Corel Corporation | System and method for secure communication |
US20030061401A1 (en) * | 2001-09-25 | 2003-03-27 | Luciani Luis E. | Input device virtualization with a programmable logic device of a server |
US6978018B2 (en) * | 2001-09-28 | 2005-12-20 | Intel Corporation | Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment |
US7711570B2 (en) * | 2001-10-21 | 2010-05-04 | Microsoft Corporation | Application abstraction with dialog purpose |
JP2005509216A (ja) | 2001-10-30 | 2005-04-07 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 分散型ソフトウェアコンポーネントを構築する方法 |
US6745307B2 (en) * | 2001-10-31 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method and system for privilege-level-access to memory within a computer |
US20050125789A1 (en) * | 2002-01-24 | 2005-06-09 | Koninklijke Philips Electronics N.V. Groenewoudseweg 1 | Executing processes in a multiprocessing environment |
JP2003233521A (ja) | 2002-02-13 | 2003-08-22 | Hitachi Ltd | ファイル保護システム |
US6977994B2 (en) | 2002-03-27 | 2005-12-20 | Toshiba Tec Kabushiki Kaisha | Portable, high performance messaging system |
US6880149B2 (en) | 2002-04-01 | 2005-04-12 | Pace Anti-Piracy | Method for runtime code integrity validation using code block checksums |
US6721871B2 (en) | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US7136924B2 (en) * | 2002-04-16 | 2006-11-14 | Dean Dauger | Method and system for parallel operation and control of legacy computer clusters |
US7058768B2 (en) | 2002-04-17 | 2006-06-06 | Microsoft Corporation | Memory isolation through address translation data edit control |
US7856631B2 (en) | 2002-05-08 | 2010-12-21 | Sap Aktiengesellschaft | Software delivery manager |
US7222106B2 (en) * | 2002-05-21 | 2007-05-22 | International Business Machines Corporation | Mechanisms for handling software license agreements on multi-user system |
US20030221012A1 (en) | 2002-05-22 | 2003-11-27 | International Business Machines Corporation | Resource manager system and method for access control to physical resources in an application hosting environment |
US7062764B2 (en) * | 2002-06-17 | 2006-06-13 | Microsoft Corporation | System and method for manipulating offline software |
US7103914B2 (en) | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
DE10235455B9 (de) * | 2002-08-02 | 2008-01-24 | Leo Elektronenmikroskopie Gmbh | Teilchenoptische Vorrichtung und Verfahren zum Betrieb derselben |
US7832011B2 (en) * | 2002-08-30 | 2010-11-09 | Symantec Corporation | Method and apparatus for detecting malicious code in an information handling system |
US20040054793A1 (en) | 2002-09-16 | 2004-03-18 | Richard Coleman | System and method for high performance shared web hosting |
EP1406166B1 (en) * | 2002-10-01 | 2011-07-13 | Sap Ag | Validation of scripting languages with interfaces using annotations in XML |
US6944754B2 (en) | 2002-10-02 | 2005-09-13 | Wisconsin Alumni Research Foundation | Method and apparatus for parallel execution of computer software using a distilled program |
US7322031B2 (en) * | 2002-10-07 | 2008-01-22 | International Business Machines Corporation | Remote Web service cloning and instantiation |
US20040078799A1 (en) | 2002-10-17 | 2004-04-22 | Maarten Koning | Interpartition communication system and method |
JP3869347B2 (ja) | 2002-10-18 | 2007-01-17 | 株式会社エヌ・ティ・ティ・ドコモ | 入出力制御システム、入出力制御方法、入出力制御プログラム |
US7200840B2 (en) * | 2002-10-24 | 2007-04-03 | International Business Machines Corporation | Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture |
US7000092B2 (en) * | 2002-12-12 | 2006-02-14 | Lsi Logic Corporation | Heterogeneous multi-processor reference design |
EP1431873A1 (en) | 2002-12-19 | 2004-06-23 | Hewlett-Packard Company, A Delaware Corporation | Computer programming |
CN1270229C (zh) | 2002-12-31 | 2006-08-16 | 上海科泰世纪科技有限公司 | 基于动态内核实现跨地址空间创建构件对象的方法 |
US7278030B1 (en) | 2003-03-03 | 2007-10-02 | Vmware, Inc. | Virtualization system for computers having multiple protection mechanisms |
US6963960B2 (en) | 2003-03-25 | 2005-11-08 | Microsoft Corporation | System and method for kernel mode memory management having movable kernel objects |
US8136155B2 (en) | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
CN1312577C (zh) | 2003-05-07 | 2007-04-25 | 中兴通讯股份有限公司 | 一种实现通信过程零拷贝消息队列的方法 |
GB2401445A (en) | 2003-05-08 | 2004-11-10 | Simon Freeman | Web site security model |
US7389512B2 (en) | 2003-05-09 | 2008-06-17 | Sun Microsystems, Inc. | Interprocess communication within operating system partitions |
JP4196333B2 (ja) | 2003-05-27 | 2008-12-17 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
US8020163B2 (en) | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US20050005261A1 (en) * | 2003-07-02 | 2005-01-06 | Severin William B. | Component integration engine |
US7533103B2 (en) * | 2003-07-22 | 2009-05-12 | Sap Ag | Self-describing business objects |
US7403956B2 (en) * | 2003-08-29 | 2008-07-22 | Microsoft Corporation | Relational schema format |
US20050060687A1 (en) * | 2003-09-15 | 2005-03-17 | Ghazaleh David Abu | Method and apparatus for documenting and describing object oriented programming logic |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7093091B2 (en) * | 2003-09-26 | 2006-08-15 | Atmel Corporation | Selectable block protection for non-volatile memory |
JPWO2005036835A1 (ja) | 2003-10-10 | 2006-12-28 | 富士通株式会社 | 統合監視制御システム及びネットワークシステム |
US20050091658A1 (en) | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
US20050119902A1 (en) | 2003-11-28 | 2005-06-02 | Christiansen David L. | Security descriptor verifier |
EP1569104A3 (en) * | 2004-01-09 | 2006-05-03 | Interuniversitair Microelektronica Centrum Vzw | An automated method for performing parallelization of sequential code and a computerized system adapted therefore |
US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
US7565653B2 (en) * | 2004-02-20 | 2009-07-21 | Sony Computer Entertainment Inc. | Methods and apparatus for processor task migration in a multi-processor system |
US7574709B2 (en) | 2004-04-30 | 2009-08-11 | Microsoft Corporation | VEX-virtual extension framework |
US8190863B2 (en) * | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US7721069B2 (en) * | 2004-07-13 | 2010-05-18 | 3Plus1 Technology, Inc | Low power, high performance, heterogeneous, scalable processor architecture |
EP1787195A4 (en) * | 2004-08-04 | 2009-12-23 | Osa Technologies Inc | SOFTWARE AND FIRMWARE APPROVAL FOR UNANTICIPATED OR. DIFFICULT HARDWARE ENVIRONMENTS |
US7240137B2 (en) * | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
US20070256080A1 (en) | 2004-09-22 | 2007-11-01 | Xyratex Technology Limited | Xml/Soap Interprocess Intercontroller Communication |
US7690033B2 (en) * | 2004-09-28 | 2010-03-30 | Exobox Technologies Corp. | Electronic computer system secured from unauthorized access to and manipulation of data |
US7680758B2 (en) * | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US20060123401A1 (en) * | 2004-12-02 | 2006-06-08 | International Business Machines Corporation | Method and system for exploiting parallelism on a heterogeneous multiprocessor computer system |
US8020141B2 (en) * | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
US7600232B2 (en) | 2004-12-07 | 2009-10-06 | Microsoft Corporation | Inter-process communications employing bi-directional message conduits |
US7451435B2 (en) | 2004-12-07 | 2008-11-11 | Microsoft Corporation | Self-describing artifacts and application abstractions |
US7454477B2 (en) | 2005-05-16 | 2008-11-18 | Microsoft Corporation | Zero-copy transfer of memory between address spaces |
US20070033592A1 (en) * | 2005-08-04 | 2007-02-08 | International Business Machines Corporation | Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors |
US7500039B2 (en) * | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8954943B2 (en) * | 2006-01-26 | 2015-02-10 | International Business Machines Corporation | Analyze and reduce number of data reordering operations in SIMD code |
US7861230B2 (en) | 2006-05-24 | 2010-12-28 | Microsoft Corporation | Profiling API shims |
JP4784827B2 (ja) | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US8132169B2 (en) * | 2006-07-21 | 2012-03-06 | International Business Machines Corporation | System and method for dynamically partitioning an application across multiple processing elements in a heterogeneous processing environment |
US8201159B2 (en) * | 2006-08-04 | 2012-06-12 | International Business Machines Corporation | Method and apparatus for generating data parallel select operations in a pervasively data parallel system |
US20080244682A1 (en) | 2007-03-26 | 2008-10-02 | General Instrument Corporation | Method for enhancing features offered by a software application residing on a set top terminal |
US20080244507A1 (en) | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8484630B2 (en) * | 2008-12-23 | 2013-07-09 | International Business Machines Corporation | Code motion based on live ranges in an optimizing compiler |
US20100199357A1 (en) | 2009-02-02 | 2010-08-05 | Microsoft Corporation | Secure hosting for untrusted code |
US9519600B2 (en) | 2011-03-04 | 2016-12-13 | Microsoft Technology Licensing, Llc | Driver shimming |
-
2005
- 2005-12-15 US US11/275,160 patent/US8849968B2/en active Active
-
2006
- 2006-05-19 JP JP2008518169A patent/JP5043003B2/ja active Active
- 2006-05-19 WO PCT/US2006/019475 patent/WO2007001679A2/en active Application Filing
- 2006-05-19 CN CN2006800210427A patent/CN101198947B/zh active Active
- 2006-05-19 BR BRPI0611985-9A patent/BRPI0611985A2/pt not_active IP Right Cessation
- 2006-05-19 EP EP06770673.9A patent/EP1896978B1/en active Active
- 2006-05-19 RU RU2007147464/08A patent/RU2424556C2/ru not_active IP Right Cessation
- 2006-05-19 MX MX2007016218A patent/MX2007016218A/es active IP Right Grant
-
2007
- 2007-12-14 KR KR1020077029343A patent/KR101343258B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP1896978A4 (en) | 2009-02-18 |
WO2007001679A3 (en) | 2007-04-05 |
JP5043003B2 (ja) | 2012-10-10 |
US8849968B2 (en) | 2014-09-30 |
WO2007001679A2 (en) | 2007-01-04 |
CN101198947B (zh) | 2013-01-30 |
EP1896978A2 (en) | 2008-03-12 |
BRPI0611985A2 (pt) | 2010-10-13 |
RU2007147464A (ru) | 2009-06-27 |
US20070011199A1 (en) | 2007-01-11 |
JP2008547114A (ja) | 2008-12-25 |
MX2007016218A (es) | 2008-03-10 |
RU2424556C2 (ru) | 2011-07-20 |
KR20080028877A (ko) | 2008-04-02 |
KR101343258B1 (ko) | 2013-12-18 |
EP1896978B1 (en) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101198947B (zh) | 对web服务第三方扩展的安全且稳定的主存 | |
CN109074563B (zh) | 区块链系统内的基于代理的图灵完备交易集成反馈 | |
JP6101267B2 (ja) | 仮想世界の相互作用のシステムおよび方法 | |
US7043522B2 (en) | Unbounded computing space | |
Sarmenta | Volunteer computing | |
US9122984B2 (en) | Distributed network architecture for introducing dynamic content into a synthetic environment | |
KR20010097785A (ko) | 디지털 컨텐츠의 다단계 유통 시스템 및 방법 | |
US7636911B2 (en) | System and methods for capturing structure of data models using entity patterns | |
Sharp et al. | Online games and e-business: Architecture for integrating business models and services into online games | |
Papaioannou | On the structuring of distributed systems: The argument for mobility | |
US8972476B2 (en) | Evidence-based virtual world visualization | |
Šipek et al. | Blockchain as an IoT intermediary | |
Brazier et al. | Law-abiding and integrity on the Internet: A case for agents | |
CN116702159B (zh) | 一种主机防护方法、装置、计算机设备及存储介质 | |
De Sutter | The power of it: survival guide for the cio | |
Aron et al. | Understanding IT: a manager's guide | |
KR20020025147A (ko) | 분산형 온라인 게임서버 시스템 및 서버 분산방법 | |
Varga et al. | Blockchains for Industrial IoT—A Tutorial | |
Hanlin | Cyberpunk and Cypherpunk: A Philosophical Analysis Comparing Two Views of the Metaverse | |
Rodríguez et al. | Cross‐platform management of intelligent objects behaviors in serious virtual environments | |
CN117009626A (zh) | 游戏场景的业务处理方法、装置、设备及存储介质 | |
Gasmelseid | Intelligent collaboration" the paradox of" ethical agency" and" corporate governance | |
Sahlin | System goodput (gs): A modeling and simulation approach to refute current thinking regarding system level quality of service | |
Darmstadt et al. | Mobile Software-Agents | |
Burns | Analyzing threads and processes in Windows CE |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150429 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150429 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |