CN1808379A - 作为操作系统原语的应用程序对象 - Google Patents
作为操作系统原语的应用程序对象 Download PDFInfo
- Publication number
- CN1808379A CN1808379A CNA2006100057999A CN200610005799A CN1808379A CN 1808379 A CN1808379 A CN 1808379A CN A2006100057999 A CNA2006100057999 A CN A2006100057999A CN 200610005799 A CN200610005799 A CN 200610005799A CN 1808379 A CN1808379 A CN 1808379A
- Authority
- CN
- China
- Prior art keywords
- application
- application program
- operating system
- identified
- status
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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
-
- 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
- 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/54—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 adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
管理与操作系统相关联的应用程序。应用程序对象被定义为操作系统的原语。应用程序对象的身份属性标识了与操作系统相关联的至少一个应用程序,且应用程序对象的元数据属性声明了所标识的应用程序的行为特征。表示所标识的应用程序的动态状态的应用程序状态定义了应用程序对象和应用程序状态之间的交互的语义。
Description
技术领域
本发明的实施例涉及应用程序管理领域。更具体而言,本发明的实施例将应用程序对象定义为操作系统的一级原语,以提供用于管理和服务应用程序的基础结构。
背景技术
常规的操作系统提供一组用于抽象硬件和管理资源的服务。例如,基本应用程序编程接口指示操作系统公开存储器、文件、联网等。通过这些API一般化常用的抽象,操作系统使得其他人能够构建感兴趣的软件制品。但是,操作系统不“控制”相关联的应用程序。换言之,操作系统一般允许应用程序在用户安全性和系统策略的限制之内完成它想要完成的所有事情,且应用程序不在任何方面向操作系统描述其边界(例如,物理或行为的)。不幸的是,有缺陷的、不受控的应用程序能够“破坏”操作系统,并导致严重的系统不稳定性。这有时候会迫使用户重新安装操作系统来重新获得稳定且可使用的系统。
应用程序不遵循操作系统的规则也导致系统的不稳定性。由于能够自由地违反规则,因此应用程序可能变得与操作系统混合。类似地,共享的设置和交叉依存关系在应用程序和操作系统之间是常见的。结果,这些设置可能甚至比二进制文件更混合。换言之,常规操作系统允许应用程序完成太多的事情,且它们不能有效地在每一应用程序的基础上强制实施操作系统和相对不受监视和不受限制的应用程序之间的未定义边界。
不幸的是,没有用于分析系统应用程序来标识二进制文件是属于操作系统还是特定的应用程序的确定性方法。同样,没有用于在操作系统和应用程序之间分离状态的确定性方法。这些问题由于常规操作系统中缺少语义分离而变得复杂,且导致无法有效地跟踪可能影响操作系统或其它应用程序的应用程序改变等。所有这些因素都造成了管理操作系统时的极大的复杂性,且因此阻碍了升级、移植、备份和漫游,并增加了系统不稳定性的可能性。
此外,试图分离状态的解决方案是非常复杂、非确定性的,且基于大量的不同试探法。几乎不可能在常规操作系统的环境中正确地标识所有安装的应用程序并向它们分配唯一的标识符。类似地,试图通过贯穿操作系统挂钩API来确保应用程序兼容性是麻烦且低效的。解决这些问题的一种事后尝试包括将某些操作系统文件指定为重要的,然后在偶然或以其它方式修改了这些“重要”文件之后试图恢复改变的二进制文件。
鉴于上述原因,期望对确定行地分析和监视系统应用程序的改进,这将降低对升级、移植、漫游等的消费者焦虑。
发明内容
本发明的实施例通过将应用程序定义为相对于操作系统的逻辑对象来解决现有技术的一个或多个缺陷。有利的是,将应用程序对象设计建立为一级原语提供了允许改进安全性、可管理性、总拥有成本等的情形的基础结构。
例如,本发明的实施例便于在计算机之间的应用程序移植,同时保持了应用程序的状态(即,其设置)。本发明的各方面允许独立于许可和版本,甚至在具有相似功能的不同应用程序的情况下在来自同一类的应用程序之间移植应用程序。另外,本发明的实施例简化了移动计算和漫游,并为应用程序提供了自适应的安全性。
在一个实施例中,一种管理与操作系统相关联的一个或多个应用程序的方法包括将应用程序对象定义为操作系统的原语。该方法还包括用应用程序对象的身份属性标识至少一个应用程序,并用应用程序对象的元数据属性声明所标识的应用程序的行为特征。
包含本发明的各方面的计算机可读介质包括作为操作系统的原语的应用程序对象的身份属性,以及应用程序对象的元数据属性。身份属性标识了与操作系统相关联的至少一个应用程序,而元数据属性声明了所标识的应用程序的行为特征。计算机可读介质还包括表示所标识的应用程序的动态状态的应用程序状态。
在又一实施例中,一种管理与操作系统相关联的一个或多个应用程序的方法包括将应用程序对象定义为操作系统的原语,并用应用程序对象的身份属性标识至少一个应用程序。该方法还包括定义表示所标识的应用程序的动态状态的应用程序状态。在这一情况下,应用程序状态定义了应用程序对象和应用程序状态之间的交互的语义。
具有用于执行管理应用程序的方法的计算机可执行指令的计算机可读介质包含本发明的其它方面。
或者,本发明的实施例可包括各种其它方法和装置。
其它特征部分将变得显而易见,部分将在后文中指出。
附图说明
图1是示出依照本发明的一个实施例的示例性应用程序抽象的框图。
图2是示出依照本发明的一个实施例用于为操作系统管理应用程序的示例性过程流的流程图。
图3是示出其中可实现本发明的一个实施例的合适的计算系统环境的示例性
实施例的框图。
在所有附图中,对应的参考标号指对应的部分。
具体实施方式
进一步参考附图,图1示出了依照本发明的实施例的示例性应用程序抽象。如图所示,应用程序对象100包括四个项,即身份属性102、可执行文件/数据属性104、元数据属性106和应用程序状态108。在一个实施例中,应用程序对象100是操作系统(见图3)的一级原语。换言之,将与操作系统相关联的每一应用程序作为逻辑对象来对待。这提供了允许改进安全性、可管理性、总拥有成本等的情形的基础结构。
如上所述,操作系统可提供一组用于抽象硬件和管理资源的服务。例如,基本应用程序编程接口指示操作系统公开存储器、文件、联网等。在这一点上,操作系统担当为其构建更复杂且更严格结构化的抽象的工具包。本发明的各方面涉及将操作系统作为其中应用程序生存和变换的环境来考虑。即,操作系统设计是以应用程序的生命周期为中心的。从这一角度来看,操作系统管理服务而非仅提供不受控的服务。采用本发明的各方面的操作系统继续提供一般性,但是也提供解决诸如可管理性、可移植性以及安全性等浮现的问题的管理协议。
依照本发明的实施例重定向操作系统将支持操作系统的基础级上的相对复杂的抽象。这假定从基本操作系统对象的常规水平表示向着具有任意的分层成分的操作系统抽象的偏离。由此,常规操作系统设计不将应用程序定义为单独且无歧义的要素。它甚至未列出其边界。尽管常规操作系统的核心具有对系统的许多控制,然而它没有每一应用程序的控制。有利的是,本发明提供了一种降低和控制操作系统复杂性的自然方法。
在图1中,身份属性102在例如全局应用程序名字空间中唯一地标识了应用程序。身份属性102对应用程序对象100扮演了例如与全局唯一标识符(GUID)为COM对象空间扮演的同样的角色。尽管应用程序身份属性102可以是相对基本的概念,然而它是非常重要的,因为如果没有它,大多数基于应用程序和基于状态的情形(例如,移植、漫游和备份)将不可行。身份属性102担当将不同的应用程序抽象片断带到一起的粘合物,即应用程序对象100。换言之,身份属性102标识什么应用程序对象100与特定的状态相关联,而该特定状态进而允许新技术和情形。
本实施例中的元数据属性106包含与所标识的应用程序相关联的静态信息,且表示应用程序的不同行为方面的声明。例如,元数据属性106表示应用程序的意向声明的清单、操作系统的最小和最大要求、操作系统的实际服务等。可执行文件/数据属性104同样包含静态信息。在这一情况下,可执行文件/数据属性104包含表示所标识的应用程序的基本元素的物理静态数据,即应用程序二进制文件。在一个实施例中,二进制文件的子集是用于应用程序执行的入口点。
再次参考图1,本发明的实施例定义了应用程序状态108,它表示所标识的应用程序的动态状态(或设置)。在这一情况下,应用程序状态108定义了应用程序对象100和应用程序状态108之间的交互的语义。当然,状态或设置可以在应用程序对象100的生命期期间改变。应用程序状态100定义了状态分离、状态对象模型、状态一致性以及对象模型变换的概念,这允许诸如移植、漫游和备份等完整的情形。
进一步参考应用程序对象100的元数据属性106,本发明的实施例在元数据属性106中维护伴随应用程序对象100的静态和重要信息。元数据属性106是应用程序对象100的元素和应用程序对象100的语义含意的载体之间的连接链接,该载体也支配应用程序对象100的所有功能方面及其行为。在一个实施例中,元数据属性106的内容被定义为初始应用程序状态108模板、基于应用程序的安全性、应用程序行为声明、应用程序属性以及应用程序可扩展性部分。图1表示包含本发明的各方面的计算机可读介质,包括身份属性102、元数据属性106以及应用程序状态108等等。
确定性系统和其它系统之间的一个不同之处在于确定性系统具有严格的概念和法则,其中所有现象及其各方面是由系统的能力来限制的,且可以用该系统的条款来描述。操作系统是一种确定性系统,因此,它具有其自己的概念和规则,其中,操作系统中每一发生的现象可由操作系统的能力来限制,且可以用操作系统的条款来描述。此处我们感兴趣的是应用程序的行为方面,这可以用操作系统的条款来描述。这些条款是操作系统资源和操作系统服务(如文件、套接字等)或操作系统本机支持的任何其它抽象。
应用程序在符合操作系统的法则的环境中交互。按照定义,应用程序的行为方面必须符合操作系统的法则,这是由操作系统的能力来限制的,且可以用操作系统的条款来描述。操作系统规则和法则所具有的细节级别取决于所标识的应用程序的当前需求。例如,对于一般条款的一种可能的定义可以是操作系统对不同类型的对象的最小和最大需求(例如,应用程序A需要RAM 10-50MB、磁盘10-50MB以及CPU 10%)。
各种方面可以用最小和最大需求来描述,以挤压操作系统条款的范围,同时所标识的应用程序仍能够一样良好地工作。这些条款可能是宽泛的,但仍是非常重要的。最小需求条款对于做出部署或执行应用程序的决策可能是至关重要的。上限条款对于防止拒绝服务情况是重要的。操作系统定义且强制实施这些条款,为条款的定义和实现提供了完整的基础结构。
在另一极端,操作系统可定义非常详细的条款,如操作系统事件和事件序列验证之间的时间依存关系。
例如,操作系统对象的行为条款可以是:大容量存储(容量配额、最小带宽、最大带宽);联网(防火墙、QOS、最大带宽MB/秒);进程(线程数、线程优先级范围、远程线程);调度(保留的处理器使用率%、优先级);存储器(工作集、连续块分配大小)。
操作系统的详细和宽泛条款不是互斥的,而是相反彼此符合并向客户机提供了可满足大多数应用程序需求的简化模型。行为方面可以用宽泛条款或详细条款来定义,这取决于感兴趣的级别。
行为声明的概念是独立的,且可以在若干情形中使用,诸如调度优化、分布式应用程序调度、需求的安装时形式验证、以及行为声明的运行时强制实施。
由操作系统定义且用于应用程序行为声明的一组条款形成了应用程序策略的基础。使用条款为应用程序管理创建了非常灵活的基础。且向应用程序管理添加对应用程序身份属性102的支持使其变得更灵活。例如,则用户可为从download.com获得的应用程序A分配非常严格的规则,包括万一它是间谍软件,则对该应用程序禁用联网。在另一示例中,公司A发现应用程序B有缺陷。尽管该缺陷是在调查中的,但公司A可取消应用程序B的安全策略,或加强该安全策略,这可防止应用程序缺陷被恶意利用,但将具有有限的功能,直到问题可以被确定且客户机获得修补。
应用程序对象108的声明性行为允许操作系统在资源和服务冲突发生之前预知它们,并在应用程序执行的任何时刻确定性地解决这些冲突。它也允许将联网协议中使用的服务质量概念推广到应用程序对象100抽象的级别。
对于应用程序状态108,所标识的应用程序和操作系统的状态往往生存在单个保留区(pot)中。可能有重叠,且一个应用程序的状态可能被其它应用程序改变。本发明的各方面将应用程序状态108建立为与应用程序对象100和操作系统分离且独立。应用程序状态108存在于应用程序对象100的外部,且其生命期独立于操作系统以及所标识的应用程序本身的生命期。在一个实施例中,对应用程序状态108的访问是通过其相关联的应用程序进行的。
一个应用程序的状态甚至可能在物理上与其它应用程序分离。应用程序应当无法访问其它应用程序的状态。如在面向对象的设计中,对象不应直接访问其它对象的成员。应用程序本身负责其自己的状态。如果应用程序对象100为任何原因而希望访问应用程序状态108,则应用程序状态108应将其自身呈现为具有一组预定义的职责的不透明对象,这是作为整体的非划分对象。只有拥有特定状态108的应用程序对象100能够修改它。其原因是要维护状态的一致性。
状态的一致性可由应用程序逻辑来确定。应用程序状态108可作为单独的实体存在,应用程序对象100使用但不拥有该实体。应用程序状态108的生命期不应当依赖于应用程序对象100的生命期,因此应用程序状态108的一致性是由应用程序状态108本身而非应用程序对象100来确定的。即,应用程序对象100和应用程序状态108具有定义良好的交互合约,该合约是按照应用程序状态语义来定义的。这一技术可包括XSD加上不仅对数据模式确认一致性,还确认数据本身的一致性的方法。
在OOD中,对于状态语义一致性,当开发者实现一个对象时,开发者确保在任何给定时刻该对象的状态是一致的,且为了具有这样的控制,对象的状态不应被除了对象本身之外的任何人修改。对象状态的每一改变必须是可控制的,且符合特定对象的一致性的预定义概念。在另一示例中,在许多商业应用中,客户机不直接改变数据库,而是相反创建和使用控制数据库一致性且表示应用程序和数据库之间的语义链接的存储过程。
类似地,应用程序状态108公开了一种个性化的数据对象模型,该模型仅对于特定的应用程序对象100有意义。该对象模型定义了应用程序对象100和应用程序状态108之间的交互的语义和合约。对象模型在任何给定时刻都确保状态的一致性。状态108不仅仅是存储,而是具有确保对象模型一致性的逻辑的活动数据库。
应用程序对象100和应用程序状态108之间以及操作系统和应用程序状态108之间的交互是两个不同的事物。操作系统用状态108作为不透明且整体的类型来工作,而如同注册表那样在值的级别上操作。它在本实施例中是不透明的是因为操作系统和所有其它应用程序不必理解特定状态的语义;因此它们应当将这些状态作为不透明的来对待,而没有修改状态的能力。
状态108是分离的,且不能由除预定义的应用程序之外的任何实体到达。只有预定义的应用程序对象100能够修改状态。其它实体将状态108作为不透明的、非划分整体类型来对待。应用程序对象100及其应用程序状态108之间的交互在由状态108本身定义的语义上正确且一致的数据对象模型上发生。状态108确保其本身在由状态108定义的条款中的一致性。
应用程序状态108与应用程序身份属性102相关联,且因此与具有同一身份属性102的应用程序对象100相关联,因为对于其它应用程序,特定的应用程序状态108没有任何语义含意。
应用程序身份属性102与应用程序状态108的关联是非常重要的,因为只有应用程序对象100知道应用程序状态108的语义,且只有与特定应用程序状态108相关联的应用程序对象100能够修改它。任何其它应用程序的状态改变不会影响所标识的应用程序的状态108。
对于应用程序状态108,实现具有以下问题:应用程序状态模式支持、内容一致性确认逻辑支持、数据对象模型支持以及后备存储支持。
将应用程序状态108作为不透明对象来对待允许许多情形,这允许在同一应用程序的同一版本之间实现移植和漫游。但是存在产品的许多不同的版本,且每一版本具有其自己的应用程序状态108的定义。存在同一类型的产品的类别,诸如从应用程序状态角度来看具有相似的语义含意的文字处理应用程序,同时它们可能具有不同的应用程序对象模型。两种应用程序都可具有相似的目的,以及相似的(如果不是相同的)特征。这意味着每一应用程序的应用程序状态108可具有相似的语义含意且可以重叠。因此可以存在在两个应用程序状态108中具有相同的含意的多个设置(例如,默认字体、默认页面布局、默认语言、默认颜色)。但是此处的问题是它们可能具有不同的对象模型以及对于应用程序状态一致性的不同含意。有利的是,本发明的实施例允许从一个版本到另一版本以及甚至在不同产品之间的移植和漫游。
应用程序对象100的每一版本用应用程序状态108的严格定义的对象模型来工作,该对象模型可具有非常不同的语义。来自同一应用程序的两个不同版本或甚至来自两个不同产品的应用程序状态108对象可能具有语义重叠。如果在两个应用程序状态之间存在语义重叠,则允许定义从一个应用程序状态108到另一个的变换的可能性。
类似地,本发明的各方面对于移动计算尤其有益。例如,用户在移动驱动器上安装了应用程序。第二天,用户可能希望使用该应用程序在远程位置撰写文档。应用程序状态108准许用户确认许可证并添加快捷方式、改变定制设置等等。即使对远程机器上用户应用程序的存在没有跟踪,也将记住该定制以供下一次使用。
此外,应用程序状态108不仅对文档,而且对具有已安装的应用程序的完全功能性驱动器准许完全的移动存储-或甚至更佳地,它可包含具有可在主机操作系统上虚拟化的应用程序的完全操作系统。
应用程序状态108变换意味着“数据对象模型”变换,因此这里的问题是:是否能够定义从一个对象模型到另一个的变换?
状态变换或数据对象模型变换是通过对所涉及的两个应用程序状态108的深层语义理解来实现的,且因此不能在操作系统级以通用方式完成。此外,这一局部语义映射在应用程序状态108是自足且独立的对象实体的情况下是可行的,即从对象模型定义到一致性控制的映射。作为具有一组已定义的职责的整体对象的应用程序状态108可描述不同的应用程序状态108之间的变换。应用程序状态108可声明语义上正确且一致的从特定的应用程序状态108的设置变换。变换可能是相当复杂的,然而无论如何,数据变换都可例如通过XML和/或嵌入和限制的NET代码的变换技术来完成。
完全描述的应用程序状态108的概念和属性允许许多新的重要情形。与应用程序对象100和操作系统的状态分离防止对应用程序状态108的破坏。数据对象模型和一致性规则即使在所标识的应用程序在处理状态数据时有缺陷时也能保持状态一致。添加状态转换作为应用程序对象100的基本且不受惯例约束的职责并为其提供必要的基础结构,可允许诸如不同版本之间甚至是不同产品之间的移植和漫游等难以置信的情形。操作系统和工具可使用应用程序状态108作为不透明对象来工作。如状态移植和状态漫游等情形可使用状态作为不透明对象来工作,这意味着从实现的角度来看,完成这一过程是非常直截了当的方法(简单的复制操作和非常确定性的用于状态关联和解除关联的次要逻辑)。
这一方法允许克服常规移植的巨大的复杂性、不完整性和非确定性方式,使用简单且直截了当的方法来使该情况发生。可能使用现有的脚本引擎来做出应用程序状态108移植。
基于应用程序的安全性的概念从“应用程序为何应当能够完成比假定它能够完成的多的任务?”的问题引发。基于应用程序的安全性的目标是提供操作系统对应用程序的个性化访问控制和使用控制。常规的操作系统基于当前登录的用户为应用程序构建安全上下文。但是由于安全上下文没有细粒度,因此应用程序的特权通常被不必要地提升。用户直观上相信应用程序不会危害操作系统和/或应用程序。与现有技术相比,本发明的该实施例防止或至少监视任何副作用。
个性化的安全上下文或基于应用程序的安全上下文是用户上下文、应用程序安全声明以及应用程序策略的“三方同盟”。基于应用程序的安全性具有动态安全上下文的属性,该动态安全上下文可以对每一应用程序不同,而非仅仅是在每一登录用户的安全上下文中是静态的。基于应用程序的安全性也涉及处理改变安全策略的动态请求以及适应于应用程序粒度上的情况要求的能力。默认的应用程序策略应当防止应用程序以任何方式危害操作系统以及系统上的任何东西,即使对于具有“管理员”特权的用户也是如此。
安全控制的概念随后延伸到安全上下文和安全声明的概念。除访问控制之外,安全性涉及使用控制。访问控制是用于控制对操作系统对象的访问的系统。它允许授予或拒绝或限制对操作系统对象的访问。但是同时,访问控制不允许控制应用程序如何使用对象。
访问控制是向所标识的应用程序授予或拒绝访问操作系统的特定对象的能力的概念。但是在授予对于对象的访问权限之后,访问控制不以任何方式控制对操作系统对象的使用。它可以由三个基本类别来区分,且当今可以主要依赖于ACL安全概念:系统(特权、用户上下文)、存储访问(文件系统、注册表、状态、Winfs)、以及联网(套接字)。
许多用户在其工作机器上是管理组的一部分,且他们用启用的管理特权来完成大部分工作。应当避免不必要地向第三方应用程序分配与授予当前用户的相同的安全特权。操作系统不应当向应用程序提供比应用程序所需要的更多的自由。操作系统应用程序策略可对未知的应用程序限制安全性。如果应用程序对象100和/或应用程序策略声明性地告诉操作系统它不需要联网,则操作系统将阻断应用程序的网络访问能力。
例如,操作系统不应允许应用程序对象100改变其二进制文件或任何其它应用程序二进制文件,作为一种通用策略。如果系统有病毒,则它可能改变应用程序二进制文件。对于应用程序只有极少的必须访问应用程序二进制文件的例外。作为对该示例的补充,公司A发现应用程序B有缺陷。尽管该缺陷是在调查中的,然而公司A可取消应用程序B的安全策略或加紧应用程序B的安全上下文,这可防止应用程序缺陷的恶意利用,但具有有限的功能,直到客户机得到修补。
使用控制是允许对操作系统对象行为的不同方面的定性控制并遵循授予对象的访问权限的概念。如上文相对于应用程序行为声明所述的,每一应用程序可以用由操作系统定义的条款来描述其自己的行为。使用控制负责对照当前安全上下文,对于应用程序行为声明控制和验证定义它们的条款。
例如,应用程序A具有对某一大文件F的只读访问权限。在授予对该文件的访问之后,应用程序A集中且持续地从文件F中读出,这显著地降低了磁盘I/O带宽且影响了CPU性能。常规操作系统不可用于限制应用程序A取用大多数带宽。具有密集I/O的小应用程序可使得机器在一段时间内无法响应。因此,需要引入一种使用控制概念,这一概念将帮助将操作系统的控制提升到一个新的质量级别。使用控制是控制操作系统对象的不同行为方面在由对象本身定义的条款中的使用的技术。对于传统的I/O对象,它可以被视为配额概念的推广。
使用控制的概念可以用文件对象示例来阐明。为简明起见,假定文件对象支持“最小带宽”和“最大带宽”行为条款。应用程序的当前安全上下文是应用程序行为声明、应用程序策略和用户上下文的组合。应用程序A的当前安全上下文对“最小带宽”和“最大带宽”条款具有某些具体值,即minb和maxb。使用控制将向应用程序A确保用于访问文件F的“最小带宽”minb,并向操作系统确保应用程序A不会超出“最大带宽”maxb。同样,如果操作系统需要,则使用控制可降低“最大带宽”至“最小带宽”。
在又一示例中,如果应用程序需要保留至少10%的CPU使用率(它可通过元数据告诉操作系统),则操作系统可在部署应用程序时对照其策略来验证,并可在执行时对照当前操作系统状态来验证。这一检查是非常有用的,如果管理员向SQLServer分配了95%的CPU(5%保留用于其它应用程序,如SQL管理小程序),则即使部署应用程序也没有任何意义。
本发明的另一方面涉及形式验证。应用程序对象100较佳地具有进一步意向的尽可能完整的声明。操作系统职责是在形式上验证特定应用程序的清单(即,声明集)是否与操作系统的应用程序策略相符合。例如,如果应用程序“ABC”将用户相关数据报告回公司,则要求应用程序声明该特定意向,因此它能够在形式上对象应用程序策略来验证,否则将应用更严格的默认策略。
形式校验在本质上是用于操作系统的法则强制实施引擎,其中由应用程序策略定义的法则是在应用程序对象100安装和/或在应用程序执行期间基于应用程序元数据属性106来实施的。它允许在问题实际发生之前检测和解决它们。形式验证可以在安装期间、在应用程序对象100执行之前或期间发生。
例如,如果应用程序要求保留至少10%的CPU使用率,则操作系统可在部署应用程序时对照策略来进行验证,并在执行时对照当前的安全上下文来进行验证。但是如果同时SQL Server用所分配的95%的CPU来运行,则执行或甚至部署应用程序没有任何意义。可以在执行之前甚至在安装之前检测到资源分配冲突。
现在参考应用程序策略和管理,应用程序对象100元数据属性106用由操作系统定义的条款描述了应用程序的不同方面。一类这样的条款可以是对操作系统对象的特定方面的最小和最大要求。操作系统可具有多个这样的变量,它们定义并描述了操作系统的不同方面。定义操作系统的特性的所有变量、概念和规则的集合必须被调节。这些变量的值和范围必须被调节,因为可能很难对这些变量重新计算和分配常量值。因此期望具有操作系统条款和规则管理概念,它们监视和调整这些变量,并定义这些变量上的规则。这一概念是“应用程序策略”。
例如,一条规则可以是应用程序A关闭对端口B的访问,且该规则可以由用户创建或由服务传送,以缓和应用程序A中的某些问题,直到该问题被修补。
这些策略可描述对要在操作系统上安装或执行的应用程序的最小要求。这些策略可在安装或执行应用程序之前检查预定义的列表。这些策略可为操作系统和客户利益定义和强制实施非常灵活的规则。应用程序策略定义操作系统必须跟踪、控制、审计和验证什么。
应用程序策略不改变操作系统的概念和法则,但是它们为操作系统定义了基本值,这一方式与宪法不改变自然法则,但仅为了向社会带去额外的利益的原因而向社会的至关重要的功能添加额外的规则是相同的。
例如,管理员可能希望仅打开一个端口由应用程序使用。要求不同端口的应用程序将被拒绝执行或甚至拒绝安装。此外,管理员可能希望操作系统在每次应用程序ABC访问端口X或每次它接近网络/磁盘带宽消耗阈值时将事件记入日志。
32位操作系统的一个主要的进步是进程级的存储器隔离。应用程序级的二进制文件、状态、安全性和策略隔离也是重要的进步。操作系统缺少定义且缺少强制实施是常规操作系统的复杂且昂贵的问题的直接后果。在这一点上,本发明的各方面允许操作系统使应用程序抽象,即应用程序对象100在操作系统的覆盖之下,且负责定义应用程序对象抽象及其进步。这允许操作系统负责应用程序的安全和可控制执行。
一般而言,本发明的实施例在操作系统级引入了应用程序对象100的抽象,作为一个核心概念。采用这一抽象的引入,应用程序对象100的边界及其主要方面,如应用程序状态、安全性等被清楚地列出。应用程序安全性和状态是帮助克服现有技术的缺陷的两个要点。应用程序状态108的模型允许用于移植、升级、漫游、备份和移动应用程序情形的确定性且直截了当的方式。对灵活的安全模型的引入允许基于这些新概念的安全且可信的运行时环境,这些新概念即声明性行为模型、基于应用程序的安全性、形式验证以及应用程序策略(所有这些都在下文中描述),它们为非常灵活的应用程序管理提供了基础。
整体应用程序对象100抽象允许新的支持技术(例如,许可、服务和出错报告)的相对简单的可扩展性。扩展应用程序对象100的职责在部署抽象特征之后直接影响应用程序,而所标识的应用程序本身无需知道该扩展。例如,作为应用程序对象100职责的一部分的一般的许可支持将在设计上影响所有应用程序。例如,软件租赁公司可通过由职员在出租了特定的应用程序之后设立的许可扩展来控制应用程序的生命期。
如下文详细描述的,应用程序概念的统一允许引入应用程序状态108,这为所标识的应用程序定义了一种模型,作为基于若干概念(例如,数据对象模型、状态一致性、状态分离、以及状态变换或对象模型变换)的分离且完整的实体。此外,依照本发明的实施例的声明性行为模型提供了对所标识的应用程序的行为方面的形式声明。基于应用程序的安全性是所标识的应用程序的个性化的安全上下文。安全控制的各方面包括访问控制和使用控制,它是用于声明性行为模型的控制引擎。形式验证包括在安装之前以及在执行之前和期间在形式上验证所标识的应用程序的不同行为方面。在一个实施例中,应用程序策略是创建和管理用于为应用程序确定操作系统环境的法则的引擎。
本发明的各方面涉及应用程序对象100抽象所构建的基本技术,诸如:
·应用程序管理和策略
·移植、漫游和备份支持
·应用程序打包和交付
·应用程序部署
应用程序部署可以仅是操作系统的特权。一般而言,应用程序物理表示是实现细节;它可以是提供其自己的文件/状态名字空间的单个包,且其中操作系统可使用应用程序身份属性102作为重新解析的点,或在应用程序存储库/数据库上的部署来查看。
应用程序对象100抽象的职责包括:
·部署/移除
·可发现性-允许找出部署的应用程序并检索关于它们的详细信息。
·可服务性-每一应用程序自然地必须可由定义服务,如同对于部署应用
程序那样自然。
·执行-应用程序必须具有至少一个或多个可执行条目。
·复制/移动-应用程序必须是移动的,这意味着复制应用程序仅仅是包括其状态的应用程序的另一实例的部署。
·状态复位/关联/取消关联-将状态与特定应用程序关联和取消关联的能力对于以下情形是非常重要且至关重要的:移植、漫游、备份、移动应用程序和分布式状态。
·分布式状态-其中真实状态存储可以被呈现为Web服务,且操作系统可将这一状态存储与任何应用程序相关联,这将允许全局漫游。
每一应用程序对象100在设计上继承这些职责。这些职责的实现主要是由作为应用程序的一部分提供的元数据属性106控制的,
在本发明的一个或多个实施例中,所标识的应用程序具有以下属性:
·应用程序对象100的生命期独立于操作系统生命期(操作系统的任何改变不能以任何方式影响应用程序)。
·应用程序状态108的生命期独立于操作系统生命期且独立于应用程序对象100生命期。
·在同一物理机器和同一操作系统上具同一应用程序的多个部署的能力。
·每一操作必须是基于事务的。
例如,本发明的实施例便于在计算机之间移植应用程序,同时保持应用程序的状态(即,其设置)。例如,如果应用程序具有单用户许可证,则用户可能希望将许可证与应用程序一起移至不同的机器,或至少将应用程序置于准许容易地获得不同机器上的许可证的状态。在这一示例中,本发明允许操作系统而非应用程序本身来维护许可支持。
现在参考图2,流程图示出了用于管理与操作系统相关联的应用程序的示例性操作。在112处开始,应用程序对象被定义为操作系统的原语。在114处,应用程序对象的身份属性标识该应用程序。本发明所示的实施例在116处用应用程序对象的元数据属性声明所标识的应用程序的行为特征(例如,大容量存储;联网;进程;资源调度;存储器)。应用程序对象的元数据属性定义了应用程序的职责。有利的是,操作系统可验证应用程序所声明的行为特征是否符合操作系统要求。在118处,独立于其它应用程序定义表示所标识的应用程序的动态状态的应用程序状态。在这一情况下,应用程序状态是数据对象模型,它定义了应用程序对象和应用程序状态之间的交互的语义。这允许本发明的实施例在120处基于由应用程序状态表示的其动态状态控制对所标识的应用程序的访问,并在122处在授予访问权限时依照所标识的应用程序的声明的行为特征控制所标识的应用程序的使用。此外,本发明的实施例允许依照所标识的应用程序的应用程序状态升级应用程序;将应用程序从一台计算机漫游到另一台;备份应用程序;在远程计算机上执行应用程序等等。在124处,用应用程序对象的可执行文件属性定义应用程序的执行的入口点。在本发明的一个实施例中,可执行文件属性包括表示所标识的应用程序的一个或多个二进制文件的静态数据。
图3示出了计算机130形式的通用计算设备的一个示例。在本发明的一个实施例中,诸如计算机130等计算机适用于在此处所示和描述的其它附图中使用。计算机130具有一个或多个处理器或处理单元132以及系统存储器134。在所示的实施例中,系统总线136将包括系统存储器134的各种系统组件耦合到处理器132。总线136表示若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各类总线体系结构的处理器或局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机130通常至少具有某一形式的计算机可读介质。计算机可读介质可以包括易失性和非易失性介质、可移动和不可移动介质,它可以是可由计算机130访问的任一可用介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。例如,计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机130访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。本领域的技术人员熟悉已调制数据信号,它以对信号中的信息进行编码的方式设置或改变其一个或多个特征。如有线网络或直接连线连接等有线介质,以及如声学、RF、红外和其它无线介质等无线介质是通信介质的示例。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器134包括以可移动和/或不可移动、易失性和/或非易失性存储器形式的计算机存储介质。在所示的实施例中,系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。基本输入/输出系统142(BIOS)包括如在启动时帮助在计算机130内的元件之间传输信息的基本例程,通常储存在ROM 138中。RAM 140通常包含处理单元132立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图3示出了操作系统144、应用程序146、其它程序模块148和程序数据150。
计算机130也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,图3示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器154。图3还示出了对可移动、非易失性磁盘158进行读写的磁盘驱动器156,以及对可移动、非易失性光盘162,如CD ROM或其它光介质进行读写的光盘驱动器160。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器154以及磁盘驱动器156和光盘驱动器160通常通过非易失性存储器接口,如接口166连接到系统总线136。
上文讨论并在图3示出的驱动器及其相关联的计算机存储介质为计算机130提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图3中,示出硬盘驱动器154储存操作系统170、应用程序172、其它程序模块174和程序数据176。注意,这些组件可以与操作系统144、应用程序146、其它程序模块148和程序数据150相同,也可以与它们不同。这里对操作系统170、应用程序172、其它程序模块174和程序数据176给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备或用户界面选择设备,如键盘180和定位设备182(例如,鼠标、跟踪球或触摸板)向计算机130输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线136的用户输入接口184连接至处理单元132,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器188或其它类型的显示设备也通过接口,如视频接口190连接至系统总线136。除监视器188之外,计算机通常包括其它外围输出设备(未示出),如打印机和扬声器,它们通过输出外围接口(未示出)连接。
计算机130可以使用到一个或多个远程计算机,如远程计算机194的逻辑连接在网络化环境中操作。远程计算机194可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机130所描述的元件。图3描述的逻辑连接包括局域网(LAN)196和广域网(WAN)198,但也可包括其它网络。LAN 196和/或WAN 198可以是有线网络、无线网络,它们的组合等等。这类网络环境常见于办公室、企业范围计算机网络、内联网以及全球计算机网(例如,因特网)。
当在局域网网络环境中使用时,计算机130通过网络接口或适配器186连接至LAN 196。当在广域网网络环境中使用时,计算机130通常包括调制解调器178或用于通过WAN 198,如因特网建立通信的其它装置。调制解调器178可以是内置或外置的,它通过用户输入接口184或其它适当的机制连接至系统总线136。在网络化环境中,相对于计算机130所描述的程序模块或其部分可储存在远程存储器存储设备(未示出)中。作为示例,而非局限,图3示出远程应用程序192驻留在存储器设备上。示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
一般而言,计算机130的数据处理器是通过在不同的时刻驻留在计算机的各种计算机可读存储介质中的指令来编程的。程序和操作系统通常例如分布在软盘或CD-ROM上。从那里,它们被安装或加载到计算机的次级存储器中。在执行时,它们被至少部分地加载到计算机的主要电子存储器中。当这些和其它各种类型的计算机可读存储介质包括用于实现在下文中结合微处理器或其它数据处理器描述的步骤的指令或程序时,此处所描述的本发明的实施例包括这种介质。当依照此处所描述的方法和技术来编程时,本发明的一个实施例也包括计算机本身。
为说明起见,程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,然而可以认识到,这些程序和组件在不同的时刻驻留在计算机的不同存储组件中,并由计算机的数据处理器执行。
尽管结合包括计算机130的示例性计算系统环境进行了描述,然而本发明的一个实施例可以使用众多其它通用或专用计算系统环境或配置来操作。该计算系统环境并非对本发明的实施例的使用范围或功能提出任何局限。此外,也不应将计算系统环境解释为对示例性操作环境中示出的任一组件或其组合具有任何依赖或需求。适用于本发明的实施例的众所周知的计算系统、环境和/或配置的示例包括但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、移动电话、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明的实施例可以在诸如由一个或多个计算机或其它设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括但不限于,例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明的实施例也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
软件体系结构上下文中的接口包括软件模块、组件、代码部分、或其它计算机可执行指令序列。接口包括,例如访问第二模块来代表第一模块执行计算任务的第一模块。在一个示例中,第一和第二模块包括诸如由操作系统提供的应用程序编程接口(API)、组件对象模型(COM)接口(例如,用于对等应用程序通信)、以及可扩展标记语言元数据交换格式(XMI)接口(例如,用于Web服务之间的通信)。
接口可以是诸如Java 2平台企业版本(J2EE)、COM或分布式COM(DCOM)示例中的紧耦合的同步实现。作为替代或除此之外,接口可以是诸如Web服务(例如,使用简单对象访问协议)中的松耦合的异步实现。一般而言,接口包括以下特征的任一组合:紧耦合的、松耦合的、同步和异步。此外,接口可符合标准协议、专有协议、或标准和专有协议的任何组合。
此处所描述的接口可以都是单个接口的一部分,或者可以被实现为单独的接口或其中的任何组合。接口可以本地或远程地执行以提供功能。此外,接口可包括比此处所示或所描述的更多或更少的功能。
在操作中,计算机130执行诸如此处所描述的计算机可执行指令,以通过将应用程序对象100定义为操作系统的原语来管理与操作系统144、170相关联的应用程序。应用程序对象100的身份属性102标识了与操作系统相关联的至少一个应用程序,且应用程序对象100的元数据属性106声明了所标识的应用程序的行为特征。表示所标识的应用程序的动态状态的应用程序状态定义了应用程序对象100和应用程序状态之间的交互的语义。
此处所示且描述的方法的执行或实现顺序不是必要的,除非另外指定。即,方法的元素可以用任何顺序来执行,除非另外指定,且方法可包括比此处所揭示的更多或更少的元素。例如,可以构想,在另一元素之前、与其同时或之后执行或实现特定元素是在本发明的范围之内。
当介绍本发明或其实施例的元素时,冠词“一”、“一个”、“该”和“所述”意指存在一个或多个元素。术语“包括”、“包含”和“具有”旨在包含性的,且意味着除所列出的元素之外还可以有其它元素。
鉴于上述内容,可以看到,实现了本发明的若干目的并获得了其它有利的结果。
由于可以在不脱离本发明的实施例的范围的情况下在上述构造和方法中做出各种改变,因此包含在以上描述且在附图中示出的所有内容都旨在被解释为说明性的,而非在限制的意义上解释。
Claims (20)
1.一种管理与操作系统相关联的一个或多个应用程序的方法,所述方法包括:
将应用程序对象定义为所述操作系统的原语;
用所述应用程序对象的身份属性标识至少一个所述应用程序;
用所述应用程序对象的元数据属性声明所标识的应用程序的行为特征。
2.如权利要求1所述的方法,其特征在于,还包括定义表示所标识的应用程序的动态状态的应用程序状态。
3.如权利要求2所述的方法,其特征在于,所述应用程序状态包括定义所述应用程序对象和所述应用程序状态之间的交互的语义的数据对象模型。
4.如权利要求2所述的方法,其特征在于,定义所标识的应用程序的应用程序状态包括独立于其它应用程序来定义所标识的应用程序的应用程序状态。
5.如权利要求2所述的方法,其特征在于,还包括基于由所述应用程序状态所表示的其动态状态来控制对所标识的应用程序的访问。
6.如权利要求5所述的方法,其特征在于,还包括当授予访问权限时,依照所标识的应用程序的声明的行为特征来控制对所标识的应用程序的使用。
7.如权利要求2所述的方法,其特征在于,还包括将所标识的应用程序的应用程序状态变换成另一应用程序的应用程序状态。
8.如权利要求2所述的方法,其特征在于,还包括依照所标识的应用程序的应用程序状态执行以下的一个或多个:升级应用程序;将应用程序从一台计算机漫游到另一台;备份应用程序;以及在远程计算机上执行应用程序。
9.如权利要求1所述的方法,其特征在于,还包括由所述操作系统验证所标识的应用程序的声明的行为特征是否符合操作系统要求。
10.如权利要求1所述的方法,其特征在于,所述应用程序的元数据属性指定了定义在所述操作系统上执行所标识的应用程序的要求的一个或多个应用程序策略。
11.如权利要求1所述的方法,其特征在于,还包括用所述应用程序的可执行文件属性为所标识的应用程序的执行定义入口点,所述可执行文件属性包括表示所标识的应用程序的一个或多个二进制文件的静态数据。
12.如权利要求1所述的方法,其特征在于,还包括用所述应用程序对象的元数据属性定义所标识的应用程序的职责。
13.如权利要求1所述的方法,其特征在于,所标识的应用程序的声明的行为特征包括以下特征的一个或多个:大容量存储;联网;进程;资源调度;以及存储器。
14.如权利要求1所述的方法,其特征在于,一个或多个计算机可读介质具有用于执行如权利要求1所述的方法的计算机可执行指令。
15.一个或多个其上储存有数据结构的计算机可读介质,所述数据结构包括:
应用程序对象的身份属性,所述应用程序对象是操作系统的原语,所述身份属性标识了与所述操作系统相关联的至少一个应用程序;
所述应用程序对象的元数据属性,所述元数据属性声明了所标识的应用程序的行为特征;以及
表示所标识的应用程序的动态状态的应用程序状态。
16.如权利要求15所述的计算机可读介质,其特征在于,还包括所述应用程序对象的可执行文件属性,所述可执行文件属性为所标识的应用程序的执行定义入口点。
17.如权利要求16所述的计算机可读介质,其特征在于,所述可执行文件属性包括表示所标识的应用程序的一个或多个二进制文件的静态数据。
18.如权利要求15所述的计算机可读介质,其特征在于,所述应用程序对象的元数据属性包括定义所标识的应用程序的职责的数据。
19.一种管理与操作系统相关联的一个或多个应用程序的方法,所述方法包括:
将应用程序对象定义为所述操作系统的原语;
用所述应用程序对象的身份属性标识至少一个所述应用程序;
定义表示所标识的应用程序的动态状态的应用程序状态,所述应用程序状态定义了所述应用程序对象和所述应用程序状态之间的交互的语义。
20.如权利要求19所述的方法,其特征在于,还包括用所述应用程序对象的元数据属性声明所标识的应用程序的行为特征。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/037,480 US20060161582A1 (en) | 2005-01-18 | 2005-01-18 | Application object as primitive of operating system |
US11/037,480 | 2005-01-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1808379A true CN1808379A (zh) | 2006-07-26 |
Family
ID=36581470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100057999A Pending CN1808379A (zh) | 2005-01-18 | 2006-01-17 | 作为操作系统原语的应用程序对象 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060161582A1 (zh) |
EP (1) | EP1681627A3 (zh) |
JP (1) | JP2006202290A (zh) |
KR (1) | KR20060083918A (zh) |
CN (1) | CN1808379A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9354852B2 (en) | 2010-12-23 | 2016-05-31 | Microsoft Technology Licensing, Llc | Satisfying application dependencies |
CN109117154A (zh) * | 2017-06-22 | 2019-01-01 | 深圳优派汉王触控科技有限公司 | 一种自动刻录应用程序的方法和系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001528B2 (en) * | 2006-03-30 | 2011-08-16 | Microsoft Corporation | Organization of application state and configuration settings |
US20100306773A1 (en) * | 2006-11-06 | 2010-12-02 | Lee Mark M | Instant on Platform |
US20090165007A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US8479051B2 (en) * | 2009-01-23 | 2013-07-02 | Microsoft Corporation | System and method for customized error reporting |
US8627284B2 (en) * | 2009-06-19 | 2014-01-07 | Microsoft Corporation | Managed system extensibility |
JP5452125B2 (ja) * | 2009-08-11 | 2014-03-26 | クラリオン株式会社 | データ処理装置及びデータ処理方法 |
US8650640B2 (en) | 2011-02-24 | 2014-02-11 | International Business Machines Corporation | Using a declaration of security requirements to determine whether to permit application operations |
CN102298537A (zh) * | 2011-06-10 | 2011-12-28 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序的迁移方法及系统 |
JP6000655B2 (ja) * | 2012-05-30 | 2016-10-05 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
KR101466944B1 (ko) * | 2013-01-28 | 2014-12-03 | 주식회사 시큐아이 | 어플리케이션 데이터를 제어하는 방법 및 이를 위한 네트워크 디바이스 |
US9438560B2 (en) * | 2014-12-31 | 2016-09-06 | Symantec Corporation | Systems and methods for automatically applying firewall policies within data center applications |
US10530468B2 (en) * | 2016-10-19 | 2020-01-07 | Vector Launch Inc. | State transfer among virtualized nodes in spaceborne or airborne systems |
US11874932B2 (en) * | 2021-06-30 | 2024-01-16 | International Business Machines Corporation | Managing application security vulnerabilities |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850518A (en) * | 1994-12-12 | 1998-12-15 | Northrup; Charles J. | Access-method-independent exchange |
US5600790A (en) * | 1995-02-10 | 1997-02-04 | Research In Motion Limited | Method and system for loading and confirming correct operation of an application program in a target system |
US6212628B1 (en) * | 1998-04-09 | 2001-04-03 | Teranex, Inc. | Mesh connected computer |
US7143421B2 (en) * | 1998-09-09 | 2006-11-28 | Microsoft Corporation | Highly componentized system architecture with a demand-loading namespace and programming model |
US6523166B1 (en) * | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
US6694336B1 (en) * | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6785887B2 (en) * | 2000-12-27 | 2004-08-31 | International Business Machines Corporation | Technique for using shared resources on a multi-threaded processor |
US7975239B2 (en) * | 2003-12-17 | 2011-07-05 | Palo Alto Research Center Incorporated | System and method for providing metadata interaction and visualization with task-related objects |
US7340469B1 (en) * | 2004-04-16 | 2008-03-04 | George Mason Intellectual Properties, Inc. | Implementing security policies in software development tools |
-
2005
- 2005-01-18 US US11/037,480 patent/US20060161582A1/en not_active Abandoned
-
2006
- 2006-01-10 EP EP06100205A patent/EP1681627A3/en not_active Withdrawn
- 2006-01-17 CN CNA2006100057999A patent/CN1808379A/zh active Pending
- 2006-01-18 JP JP2006010195A patent/JP2006202290A/ja active Pending
- 2006-01-18 KR KR1020060005305A patent/KR20060083918A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9354852B2 (en) | 2010-12-23 | 2016-05-31 | Microsoft Technology Licensing, Llc | Satisfying application dependencies |
US9977665B2 (en) | 2010-12-23 | 2018-05-22 | Microsoft Technology Licensing, Llc | Satisfying application dependencies |
CN109117154A (zh) * | 2017-06-22 | 2019-01-01 | 深圳优派汉王触控科技有限公司 | 一种自动刻录应用程序的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20060161582A1 (en) | 2006-07-20 |
JP2006202290A (ja) | 2006-08-03 |
EP1681627A2 (en) | 2006-07-19 |
EP1681627A3 (en) | 2007-11-28 |
KR20060083918A (ko) | 2006-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1808379A (zh) | 作为操作系统原语的应用程序对象 | |
US10540159B2 (en) | Model-based virtual system provisioning | |
US8645843B2 (en) | Supporting role-based access control in component-based software systems | |
US10055604B2 (en) | Filesystem access for web applications and native code modules | |
US20200034516A1 (en) | Programming interface for licensing | |
US9043861B2 (en) | Method and system for managing security policies | |
Biswas et al. | Label-based access control: An ABAC model with enumerated authorization policy | |
CN1617101A (zh) | 操作系统资源保护 | |
US9146735B2 (en) | Associating workflows with code sections in a document control system | |
US8396846B2 (en) | Database trigger modification system and method | |
CN1617099A (zh) | 软件产品的应用程序身份 | |
CN1959640A (zh) | 在软件包管理系统将用户进程表示为软件包的系统和方法 | |
US20090158286A1 (en) | Facility for scheduling the execution of jobs based on logic predicates | |
WO2016026320A1 (zh) | 访问控制方法及装置 | |
CN1664813A (zh) | 构建、展开、服务并管理可定制和可配置可重复使用应用程序的框架 | |
CN1848083A (zh) | 一般软件要求分析器 | |
Zhou et al. | Policy enforcement pattern | |
Bencomo et al. | Genie: a domain-specific modeling tool for the generation of adaptive and reflective middleware families | |
Strittmatter et al. | Identifying Semantically Cohesive Modules within the Palladio Meta-Model. | |
US20230418964A1 (en) | Generating customized policy decision point services for controlling access to computing resources | |
Hemme-Unger et al. | Model driven architecture development approach for pervasive computing | |
Oancea | Integrating security policy design in the software design | |
Troy | Librarian A Multi-User License Manager | |
Kaugers et al. | Model-driven secure system development framework | |
Born | Enforcing legal ownership rights by an access control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20060726 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |