用于访问资源的方法和系统技术方案

技术编号:2836878 阅读:175 留言:0更新日期:2012-04-11 18:40
在本方法中由操作系统提供了访问资源的方法,在第一个环境内部执行的应用程序接收到一个访问资源的请求。与此资源相关的第一个标识符被获得。确定第二个标识符,其涉及被请求的资源和发起该资源的发起环境。响应于该第二个标识符,将对资源的请求重定向到所识别的资源实例。使用位于该资源驻留的环境中的该资源的实例,来响应对资源的请求。另外,在操作系统提供的用于访问资源的方法中,由在资源中执行的应用程序接收对资源的请求。第一个标识符与请求的资源相关。参考注册,作为对在与资源相关联的第一个标识符和与资源相关联的第二个标识符之间的关联的响应,此关联与环境相关联。作为对注册进行参考的响应,识别资源和在其上发起资源的环境。第二个标识符是与资源、环境和与在其上发起资源的环境相关联的。针对资源的注册键存储在注册中,该注册键包括第二个标识符。响应于第二个标识符,针对资源的请求被重定向到该资源的被识别的实例。使用位于资源所驻留的环境中的资源实例来针对资源的请求进行响应。响应于第二个标识符,在识别的环境中发起被请求的资源。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及管理由计算机执行的软件应用,特别地,涉及用于减少在由相同计算机系统执行的不同应用程序之间和相同应用的各个用户之间的兼容性和交际性(sociability)问题。
技术介绍
计算机软件应用程序在执行和安装期间使用由计算机的操作系统提供的多种本地(native)资源。传统的单用户计算机于图1A中描述。如图1A中所示,由操作系统100提供的本地资源可以包括文件系统102、注册(registry)数据库104和对象106。文件系统102给应用程序提供打开、创建、读取、复制、更改和删除数据文件150、152的机制。数据文件150、152可以一起分组在目录160、162的逻辑层级中。注册数据库104存储关于与计算机物理联系(attach)的硬件的信息,在操作系统100启动时,哪些系统选项已经被选择,计算机存储器如何被建立,应用专用数据的各种项目和哪些应用程序应该存在。如图1A中所示,注册数据库104一般地被组织在“键”(key)170、172的逻辑层级中,键是注册值的容器。操作系统100可以还提供多个通信和同步对象106,包括信号量、区(section)、互斥体(mutexes)、计时器、变异体(mutant)和管道。文件系统102、注册数据库104、和对象106和任意其他由操作系统100使其可用的本地资源在本文档中一起称为“系统层”108。由系统层108提供的资源对任意应用或者系统程序112、114均可用。但是,当试图执行或者安装两个不兼容的应用程序112,114时,出现问题。如图1A所示,两个应用程序APP1 112和APP2 114,在操作系统100“顶端”执行,也就是说,应用程序使用由操作系统提供的函数来访问本地资源。当应用程序在执行或者安装过程中,以相互排斥的方式使用本地资源102,104,106时,应用程序被称为相互不兼容的。APP1 112可能请求或者试图安装由路径名c\windows\system32\msvcrt.dll定位的文件,并且,APP2 114可能请求或者试图安装由相同路径名定位的第二个不同的文件。在这个情况下,APP1 112和APP2 114不能够在相同的计算机上被执行,被称为是相互不兼容的。相似的问题可能为其他本地资源所遇到。这点最多对于需要在相同的操作系统100的环境中一起安装或执行APP1 112和APP2 114的计算机用户是不便的。图1B描述支持代表多个用户并发执行应用程序112,114,112′,114′的多用户计算机系统。如图1B中所示,APP1的第一个实例112和APP2的第一个实例114在第一个用户会话110的上下文中执行,APP1的第二个实例112′在第二个用户会话120的上下文中执行,并且APP2的第二个实例114′在第三个用户会话130的上下文中执行。在这个环境中,如果APP1的两个实例112,112′和APP2的两个实例114,114′仿佛单个用户执行此应用那样使用资源102,104,106,则会发生问题。例如,APP1 112可能在注册键170中存储应用专用数据。当在第一个用户上下文110中执行的APP1的第一个实例112,和在第二个用户上下文120中执行的APP1的第二个实例112′,都试图将配置数据存储到相同的注册键170时,将为其中的一个用户存储不正确的配置信息。对于其它本地资源,可能发生类似的问题。本专利技术解决了这些应用程序兼容性和交际性问题。
技术实现思路
本专利技术允许在单个计算机上安装和执行彼此不兼容的应用程序和相同的应用程序的不兼容版本。而且,它允许在多用户计算机上安装和执行设计用于单用户计算机的,或者在设计时没有考虑到当执行在多用户计算机上时遇到的问题的程序。所述的方法和设备对于单用户计算环境是适用的,其包括多用户可能一个接一个地使用单个计算机的环境,同样也适用于其中多个用户并发使用单个计算机的多用户计算环境。本专利技术虚拟化(virtualize)用户和应用对本地资源的访问,诸如文件系统、注册数据库、系统对象、窗口类和窗口名,而不对应用程序或者所基于运行的操作系统进行修改。另外,虚拟化了的本地资源可能被以本地格式存储(也就是说,虚拟化了的文件被存储在文件系统中,虚拟化了的注册项被存储在注册数据库中,等等),允许使用标准工具和技术对虚拟化了的资源进行查看和管理。在一个方面,本专利技术涉及用于访问由操作系统提供的资源的方法。针对资源的请求由在第一环境中执行的应用程序接收。获取与此资源相关的第一标识符。确定涉及所请求资源的第二标识符和在其上发起(launch)资源的发起环境。响应于第二个标识符,针对资源的请求被重定向到所识别的资源实例。使用位于该资源所驻留(reside)的环境中的资源实例来答复针对该资源的请求。响应于第二标识符,在所识别的环境中发起所请求的资源。在一个实施例中,确定第二个标识符包括参考(consult)与应用隔离(isolation)环境相关的图(map)。在另一个实施例中,确定第二个标识符包括从图接收第二个标识符,第二个标识符标识在资源所驻留的环境中所请求的资源的实例。在另一个方面,本专利技术涉及用于访问由操作系统提供的资源的系统,其包括资源、应用程序、关联(association)、第一个进程、第二个进程和第三个进程。在环境中执行的应用程序接收到针对资源的请求。所述关联将与资源相关联的第一个标识符和与资源相关联的第二个标识符进行关联。响应于第一个标识符,第一个进程从此关联接收到第二个标识符。第二个进程识别资源实例和在其中发起资源的环境。响应于第二个标识符,第三个进程将针对资源的请求重定向(redirect)到该资源实例。在一个实施例中,第一个进程从关联接收动态生成的第二个标识符。在另一个实施例中,关联包括将标识与应用程序相关联的至少一个COM服务器和应用隔离环境的类标识符映射到动态生成的类标识符的映射。在另一个实施例中,资源包括进程外(out-of-process)COM服务器。在一个方面中,本专利技术涉及用于访问由操作系统提供的资源的方法。针对资源的请求由在环境中执行的应用程序接收。获取与此资源相关的第一标识符。响应于在与资源相关联的第一个标识符和与资源相关联的第二个标识符之间的关联,参考注册,此关系与环境相关联。响应于对注册的参考,识别出资源和在其上发起该资源的环境。第二个标识符与所述资源,所述环境和在其上发起该资源的环境相关联。用于该资源的注册键被存储在注册中,该注册键包括第二个标识符。响应于第二个标识符,针对资源的请求被重定向到所识别的资源实例。使用位于该资源所驻留(reside)的环境中的资源实例来答复针对该资源的请求。响应于第二标识符,在所识别的环境中发起所请求的资源。在一个实施例中,响应于从关联接收第二标识符失败而参考注册。在另一个实施例中,在关联中该第二标识符被与所述资源、所述环境和发起该资源的环境相关联。在另一个方面,本专利技术涉及用于访问由操作系统提供的资源的系统,其包括资源、应用程序、关联、钩取(hook)进程和第二个进程。在环境中执行的应用程序,接收针对资源的请求。在与资源相关联的第一个标识符和与资源相关联的第二个标识符之间的关联,与环境相关联。钩取进程获取与资源相关联的第一个标识符,识别该资源和本文档来自技高网
...

【技术保护点】
一种由操作系统提供的,用于访问资源的方法,此方法包括如下步骤:    (a)由在第一个环境中执行的应用程序接收针对资源的请求;    (b)获取与此资源相关联的第一个标识符;    (c)确定涉及该被请求的资源和在其上发起此资源的发起环境的第二个标识符;    (d)响应于第二个标识符,将对资源的请求重定向到此资源的识别的实例;并且    (e)使用位于在此资源所驻留的环境中的、此资源的实例来对针对此资源的请求作出响应。

【技术特征摘要】
【国外来华专利技术】US 2004-9-30 10/711,737;US 2004-9-30 10/711,736;US1.一种由操作系统提供的,用于访问资源的方法,此方法包括如下步骤(a)由在第一个环境中执行的应用程序接收针对资源的请求;(b)获取与此资源相关联的第一个标识符;(c)确定涉及该被请求的资源和在其上发起此资源的发起环境的第二个标识符;(d)响应于第二个标识符,将对资源的请求重定向到此资源的识别的实例;并且(e)使用位于在此资源所驻留的环境中的、此资源的实例来对针对此资源的请求作出响应。2.权利要求1的方法,其中,步骤(a)进一步包括由应用程序使用COM库。3.权利要求1的方法,其中,步骤(a)包括通过在环境中执行的应用程序,对资源发出请求。4.权利要求1的方法,其中,步骤(e)进一步包括例示进程外COM服务器。5.权利要求1的方法,其中,步骤(b)进一步包括截取与此资源相关联的第一个标识符。6.权利要求1的方法,其中,步骤(b)进一步包括获取第一个标识符作为对被钩取的COM API的响应。7.权利要求1的方法,其中,步骤(b)进一步包括钩取CoCreateInstance COM API。8.权利要求1的方法,其中,步骤(b)进一步包括钩取CoCreateInstanceEx COM API。9.权利要求1的方法,其中,步骤(b)进一步包括钩取CoGetClassObject COM API。10.权利要求1的方法,其中,步骤(b)进一步包括钩取CoGetInstanceFromFile COM API。11.权利要求1的方法,其中,步骤(b)进一步包括钩取CoGetInstanceFromIStorage COM API。12.权利要求1的方法,进一步包括钩取CoRegisterClassObjectCOM API。13.权利要求1的方法,其中,步骤(c)进一步包括执行确定性的映射算法。14.权利要求1的方法,其中,步骤(c)进一步包括参考一图。15.权利要求1的方法,其中,步骤(c)进一步包括参考与环境相关联的图。16.权利要求1的方法,其中,步骤(c)进一步包括参考与应用隔离环境相关联的图。17.权利要求1的方法,其中,步骤(c)进一步包括存储在图中的第二个标识符的静止拷贝。18.权利要求1的方法,其中,步骤(c)进一步包括接收第二个标识符,第二个标识符与此发起环境相关联。19.权利要求1的方法,其中,步骤(c)进一步包括从一图接收第二个标识符,第二个标识符识别在此资源驻留的环境中,被请求的资源的实例。20.权利要求1的方法,进一步包括识别此资源驻留的第二环境的步骤。21.权利要求1的方法,其中,步骤(e)进一步包括执行此资源。22.权利要求1的方法,其中,步骤(e)进一步包括通过此资源的实例,对与此应用程序相关联的显示区域进行修改。23.一种由操作系统提供的,用于访问被隔离的资源的系统,包括资源;在环境中执行的应用程序,接收针对此资源的请求;在与资源相关联的第一个标识符和与此资源相关联的第二个标识符之间的关联;第一个进程从该关联接收第二个标识符,作为对第一个标识符的响应;识别此资源实例的第二个进程,和在其中发起此资源的环境;和第三个进程,将对此资源的请求重定向到此资源的实例,作为对第二个标识符的响应。24.权利要求23的系统,其中,第一个进程在此环境中执行。25.权利要求23的系统,其中,第一个进程在此环境外执行。26.权利要求23的系统,其中,第一个进程截取第一个标识符。27.权利要求23的系统,其中,第一个进程进一步包括从所述关联接收静态生成的第二个标识符。28.权利要求23的系统,其中,第一个进程进一步包括从所述关联接收动态生成的第二个标识符。29.权利要求23的系统,其中,第一个进程进一步包括将第二个标识符传送到第二个进程。30.权利要求23的系统,其中,第一个进程进一步包括将第二个标识符传送到第三个进程。31.权利要求23的系统,其中,第二个进程在此环境中执行。32.权利要求23的系统,其中,第二个进程在此环境外执行。33.权利要求23的系统,其中,第三个进程在此环境中执行。34.权利要求23的系统,其中,第三个进程在此环境外执行。35.权利要求23的系统,其中,此资源进一步包括进程外COM服务器。36.权利要求23的系统,其中,此资源进一步包括与驻留在此环境中的第二个资源不同版本的COM服务器。37.权利要求36的系统,其中,第一个标识符与第一个资源和第二个资源相关联。38.权利要求23的系统,其中,此资源驻留在此环境中。39.权利要求23的系统,其中,此资源驻留在第二个环境中。40.权利要求23的系统,其中,此资源驻留在应用隔离环境中。41.权利要求23的系统,其中,在此资源所驻留在的环境中,此资源进一步包括至少一个注册条目。42.权利要求23的系统,其中,应用程序在应用隔离环境中执行。43.权利要求23的系统,其中,应用程序在与应用隔离环境相关联的环境中执行。44.权利要求23的系统,其中,应用程序在包括对此资源发出请求的环境中执行。45.权利要求23的系统,其中,应用程序包括对此资源发出请求。46.权利要求23的系统,其中,所述关联进一步包括将识别至少一个COM服务器...

【专利技术属性】
技术研发人员:NA比塞特A罗伊乔德里RJ马扎费里
申请(专利权)人:茨特里克斯系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1