CN101198947A - 对web服务第三方扩展的安全且稳定的主存 - Google Patents

对web服务第三方扩展的安全且稳定的主存 Download PDF

Info

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
Application number
CNA2006800210427A
Other languages
English (en)
Other versions
CN101198947B (zh
Inventor
G·C·亨特
J·R·劳瑞斯
A·G·格朗纳瑞斯
R·E·安德斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101198947A publication Critical patent/CN101198947A/zh
Application granted granted Critical
Publication of CN101198947B publication Critical patent/CN101198947B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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

对web服务第三方扩展的安全且稳定的主存
相关申请
本申请要求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所述的一个或多个计算机可读介质,其中所述隔离动作的特征在于定义扩展进程可与哪些其它进程通信以及管制其间的此类通信。
CN2006800210427A 2005-06-20 2006-05-19 对web服务第三方扩展的安全且稳定的主存 Active CN101198947B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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.