CN1797346A - 在托管应用程序进程中引发异步行为变化的方法和系统 - Google Patents
在托管应用程序进程中引发异步行为变化的方法和系统 Download PDFInfo
- Publication number
- CN1797346A CN1797346A CNA2004101024194A CN200410102419A CN1797346A CN 1797346 A CN1797346 A CN 1797346A CN A2004101024194 A CNA2004101024194 A CN A2004101024194A CN 200410102419 A CN200410102419 A CN 200410102419A CN 1797346 A CN1797346 A CN 1797346A
- Authority
- CN
- China
- Prior art keywords
- managed
- application process
- application
- managed application
- answering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
本文介绍了一种在托管应用程序进程中引发异步行为变化的方法和系统。执行一个应用程序管理器进程。执行一个托管应用程序进程。执行至少一个应用程序,其被提供为在托管代码平台控制下的面向对象程序代码。托管应用程序进程与应用程序管理器进程逻辑地进行通信。识别一个或多个对应于应通知对象的构造器,所述应通知对象被提供为面向对象程序代码。每个构造器在托管应用程序进程中的列表中保持对实例化应通知对象的跟踪。将变化请求广播到托管应用程序进程。对每个识别的构造器所跟踪的应通知对象进行遍历以在所述托管应用程序进程中实现行为变化。
Description
技术领域
本发明一般涉及异步行为变化,特别是涉及一种在托管应用程序进程中引发异步行为变化的方法和系统。
背景技术
在微处理器设计和组件集成中,近来的发展已经使广泛的设备能够提供日益复杂的功能和“软”特征。软特征包括对设备的运行进行增强和定制的软件应用程序。这些设备包括标准的计算设备,例如桌面计算机和便携式计算机,可移动的计算设备例如个人数据助理,以及消费设备例如蜂窝电话、消息呼机、游戏控制台和机顶盒(STB)。现在,大多数设备包括一个操作系统以支持软特征和其他的扩展。
由这些可软件升级的设备提供的增强功能也已经造成了某些用户期望。通常,用户并不了解技术,并且不能容忍由体系结构难题引起的性能折衷,例如缓慢的或者不一致的应用程序性能。同样地,用户通常期望能够访问大量的独立的应用程序,这些应用程序在系统级是通过多任务来实现的。普遍可用的软件应用程序通过跨多个平台的一致性和增强呈现来保证了用户的良好感受。然而,对于软件开发者而言,为异构的计算平台开发软件应用程序必然伴有增加的开发费用和持续的支持以及对每个所支持的体系结构的升级承诺。
托管代码平台通过引出机器无关和体系结构中立的操作环境,为寻求多平台支持的软件开发者提供了一个解决方案。托管代码平台包括和用户应用程序一样由操作系统执行的编程语言编译器和解释器,但是它们提供了兼容应用程序可在其中运行的虚拟运行时环境。例如,用Java编程语言编写的应用程序和Java虚拟机(JVM)结合时,可以在独立于机器特定的环境和配置设置的异构计算机系统上执行。在P.van der Linden,“Just Java”,Ch.1,Sun Microsystems,Inc.(2d ed.1997)中对Java编程语言的概述进行了描述,在此将该文献中所公开的内容通过引用的形式并入。JVM是整个Java运行环境的关键组件,可将其移植到所有的计算设备,包括存储受限的消费设备。
托管代码平台一般被设计为用于单个应用程序实例的单调执行。托管代码平台和一个应用程序实例的组合形成了应用程序进程。因此,可以执行多个应用程序进程以模拟多个独立应用程序的多任务行为。每个“多任务”的应用程序在一个单独的托管代码平台下执行,该托管代码平台提供分离的虚拟运行时环境。而每个托管代码平台又在底层操作系统的控制下在单独的进程空间中执行。可以使用操作系统提供的工具实现对托管代码平台的有限控制,例如进程间通信(IPC)和相关机制例如信号处理器,但是通常这类工具并不能用于控制在托管代码平台下执行的应用程序。
应用程序控制不可用有几个原因。首先,每个应用程序可以源自不同的源并且可以使用不同的应用程序模型、编程语言和运行假设来编程。同样,每个应用程序在托管代码平台提供的虚拟运行时环境内是隔离的,而且必须使用在运行时环境内运行的扩展库函数把进程间控制明确地编入应用程序中。这种程序扩展通常很慢,并且潜在地引入兼容性和互操作性的问题。而且,在简单性、健壮性和效率方面,隔离的应用程序执行通常优于协作的应用程序执行。
尽管如此,通常还是使用一个应用程序管理器来基于用户请求对执行于某种设备(尤其是消费设备)上的多个应用程序进程提供最小程度的中央控制。但是,所述控制一般限于提供对应用程序的启动和终止的大粒度控制。由于应用程序控制工具不可用,因而也就不支持对应用程序级的行为特征的细粒度控制。例如,应用程序属性或者用户界面的外观和感觉可能需要由运行时环境动态改变,或者需要确保一致的外观和用户体验。但是,应用程序间控制工具的缺乏阻碍了这种运行时改变的进行。
因此,需要一种提供对隔离的应用程序进程的动态中央控制的方法。优选地,这种方法会影响每个应用程序进程的异步变化而不会影响分离的应用程序的执行。而且,这种方法会进一步提供灵活的机制以传达行为变化,而在无显式协作的情况下使每个应用程序进程继续进行。
发明内容
应用程序管理器和托管代码平台在应用程序框架中执行,该框架支持多个独立的隔离用户应用程序的产生。托管代码平台包括一个运行时系统进程例如虚拟机,以解释定义兼容应用程序的机器可移植(machine-portable)代码。每个执行应用程序和运行时系统进程对构成一个托管应用程序进程。该应用程序管理器通过一个实现进程间通信(IPC)机制的监听器例如专用控制线程异步地访问该运行时系统。该监听器的一个实例驻留在每个托管应用程序进程的地址空间中。应用程序管理器通过“句柄”可以访问该监听器。例如,TCP/IP可以被用作应用程序管理器和托管应用程序进程之间的IPC机制,而该句柄被指定为TCP端口号。运行时系统进程上下文包括一组应通知对象(notifiable object),其被用于把行为变化透明地强加于在运行时系统进程中执行的应用程序。合适的托管代码平台和托管应用程序进程的一个例子是Java运行环境和Java虚拟机(JVM)体系结构,其由加利福尼亚州帕洛阿尔托的太阳微系统公司特许授权。
一个实施例提供了一种在托管应用程序进程中引发异步行为变化的方法和系统。执行一个应用程序管理器进程。执行一个托管应用程序进程。执行至少一个应用程序,该应用程序被提供为在托管代码平台控制下的面向对象程序代码。所述托管应用程序进程与所述应用程序管理器进程逻辑地进行通信。识别与应通知对象的类相对应的一个或多个构造器。执行时,每个这样的构造器把所关心的新构造的应通知对象放在列表上。将变化请求广播到托管应用程序进程。由构造器透明跟踪的应通知对象被遍历以在所述的托管应用程序进程中实现行为变化。
对于在作为托管应用程序进程一部分的运行时系统进程中执行的非协作的应用程序,行为变化被透明地执行。利用所述监听器和被透明地跟踪的应通知对象,可以通过在托管应用程序进程上执行的应用程序管理器实现行为变化,其独立于且不需要分离的执行应用程序的显式协作。
对于本领域的技术人员,根据下面的详细描述,本发明的其他实施例将变得更加清楚,其中通过对预计用来实现本发明的最佳模式进行图解说明的方式描述了本发明的实施例。正如将实现的,本发明能够有其他的、不同的实施例,并且在各个明显的方面,它具有若干细节可以修改,但所有的这些都不偏离本发明的精神和范围。因此,附图和详细描述将被认为是示意性的而非限制性的。
附图说明
图1是一个功能框图,作为例子示出了在多种异构设备上实现的运行时环境。
图2是一个框图,示出了一种根据本发明的在一个托管应用程序进程中引发异步行为变化的系统。
图3A~图3C是功能框图,作为例子示出了在一个应用程序管理器和多个托管应用程序进程之间的异步控制和数据交换。
图4是一个流程图,示出了一种根据本发明的在一个托管应用程序进程中引发异步行为变化的方法。
图5是一个流程图,示出了用于执行一个托管应用程序进程的例程,所述托管应用程序进程用于图4的方法中。
图6是一个流程图,作为例子示出了用于处理一个被引发的异步行为变化的例程,所述变化用于图5的例程中。
具体实施方式
发明概述
图1是一个功能框图10,作为例子示出了在多种异构设备11上实现的运行时环境(RTE)14、22、24、26。每个异构设备11提供了一个在运行时环境14、22、24、26中执行的托管代码平台,例如Java运行环境。一个或多个的应用程序(App)27可以在运行时环境14、22、24、26中执行,且每个执行应用程序27和运行时环境14、22、24、26对构成一个托管应用程序进程28,下面参照图2对其进行进一步的描述。异构设备11包括(非排除性地)一个客户计算机系统13,例如桌面或者便携式计算机系统。每个客户13可操作地连接到存储设备15并保存一组类16和类库17,其分别定义了代码模块及这些模块的可共享的集合,其中所述代码模块指定了数据结构和操作数据的方法集。异构设备11还包括可移动的计算设备(包括个人数据助理21)和消费设备(例如移动电话23和机顶盒(STB)25)。最后,服务器18可操作地连接到存储设备19,其中保存了全局共享的类库20。每个异构设备11可以通过网络12接口,网络12包括传统的硬连线网络配置和无线网络配置。其他类型的异构设备11和各种网络配置、布局和拓扑是可能的。
每个异构设备11包括一个操作系统,其管理资源、提供对外围设备的访问、分配存储资源,并控制程序的执行和终止。在一个实施例中,每个操作系统都支持一种进程克隆机制,其通过克隆所能指定的进程的存储空间来创建多个独立的隔离的用户应用程序,正如下列普通转让的待审美国专利申请中所描述的:申请日2003年12月22日、名称“System And Method for Dynamic Preloading Of Classes ThroughMemory Space Cloning Of A Master Runtime System Process”、序列号10/745023;申请日2003年12月22日、名称“System And Method forProviding Precompiled Code Through Memory Space Cloning Of A MasterRuntime System Process”、序列号10/745020;申请日2003年12月22日、名称“System And Method for Eliminating Static InitializationOverhead By Memory Space Cloning Of A Master Runtime SystemProcess”、序列号10/745021;这些申请所公开的内容在此通过引用并入。适合在本发明中使用的进程克隆机制的一个例子是由Unix和Linux操作系统提供的fork()系统调用,例如在M.J.Bach,“The Design Of TheUnix Operating System”,Ch.7,Bell Tele.Labs.,Inc.(1986)中所描述的,其在此通过引用并入。调用fork()系统调用的进程被称为父进程,而新创建的进程被称为子进程。操作系统为子进程分配一个单独的进程标识符,子进程作为单独的进程执行。操作系统通过把父进程的存储空间复制到子进程的存储空间,也创建了父进程的上下文的逻辑拷贝。在fork()系统调用的一个写时拷贝的变体中,操作系统只把引用复制到存储空间,而且实际上推迟复制单个的存储空间段直到,并且如果,子进程试图修改父进程上下文的引用数据。写时拷贝的fork()系统调用比非写时拷贝的fork()系统调用更快,并隐式地在父进程和子进程之间共享任何没有被写入的数据。
引发异步行为变化的系统
图2是一个框图,其示出了根据本发明的、用于在托管应用程序进程34中引发异步行为变化的系统30。系统30包括一个运行时环境,其执行一个应用程序管理器31和一个或多个托管应用程序进程32。托管应用程序进程32包括一个托管代码平台(例如Java虚拟机),其解释机器可移植代码,该代码定义了兼容应用程序和一个或多个执行应用程序33。存储设备39永久地存储单独的类40和类库42,其形成整个核心托管代码平台。作为示例,现参照Java运行环境来描述该系统,虽然也可以使用其他形式的托管代码平台,它们执行的应用程序优选使用面向对象的编程语言(例如Java编程语言)编写。
应用程序管理器31提供一个用户界面,用户通过该用户界面可选择和执行单独的应用程序。运行时,应用程序管理器31和托管应用程序进程32通过监听器34通信地接口。应用程序管理器31通过监听器34和一个或多个应通知对象35的组合间接地在应用程序33中引发行为变化,应通知对象35在托管应用程序进程上下文中实例化,并且由它们的构造器在列表中透明地跟踪。
监听器34从应用程序管理器31中提供一个逻辑信道,通过该逻辑信道,行为变化可以在消息(“Msg”)38中被异步广播到一个或多个的托管应用程序进程32。应用程序管理器31在应用程序启动列表44中记录所启动的托管应用程序进程32。当发起一个行为变化时,应用程序管理器31遍历应用程序启动列表44,并把相同的消息38发送给所有创建的托管应用程序进程32的监听器34。消息38识别该变化请求的性质,例如改变应用程序属性或者用户界面的外观和感觉。其他类型的变化请求也是可能的。
应用程序管理器31通过在监听器34上定义的句柄36访问每个托管应用程序进程32。应用程序管理器31在监听器句柄列表45中记录监听器句柄36。监听器34驻留在托管应用程序进程32的地址空间内并包括一个专用的控制线程,直到应用程序管理器31请求一个变化时才激活该线程,如下面参照图5进一步描述的。在所描述的实施例中,监听器34是通过IPC机制(例如TCP)提供的,并且包括一个被定义为套接字(例如TCP套接字)的句柄36,其可被指定为托管应用程序进程32上的专用端口号。
应通知对象35在托管应用程序进程32的托管代码平台的上下文中实例化。应通知对象35的构造器41、43在类40中定义,而类定义在类库42中。托管应用程序进程32使用应通知对象35类型的构造器41、43,以把每个实例化的应通知对象35放入托管应用程序进程32的本地列表46中。在类40、42中设计这些构造器41、43以包括实现这种跟踪的必要功能。类40、42继续满足编程模型的期望,而且补充额外的跟踪和变化功能。例如,应用程序33经常使用某些公知的库,而且定义这些库所需的源代码的实现一般被指定为系统类,而不是应用程序类。因此,可以编写这些库,既提供期望的功能,又包括在列表46中跟踪应通知对象35的功能,从而允许行为变化相对于应用程序执行透明地发生。在另一个的实施例中,每个类40、42也定义一个析构器或完成器(finalizer),其能够为垃圾回收检测应通知对象35的资格(eligibility)。然后,析构器方法能够把应通知对象35从各自的跟踪列表中移出,因为应通知对象35将被垃圾回收器回收。
为了发起一个行为变化,应用程序管理器31发送一个消息38,该消息识别实现行为变化所需的应通知对象35的类型。然后,监听器34遍历在本地列表46中所跟踪的识别类型的已分配的应通知对象35,并代表应用程序管理器31透明地实现该行为变化。
异步控制和数据交换
图3A~图3C是功能框图60、80、90,作为例子示出了一个应用程序管理器(App Mgr)62和多个托管应用程序进程(MAP)63、65、67之间的异步控制和数据交换。应用程序管理器62和托管应用程序进程63、65、67全都执行与运行时环境61内。参见图3A,每个托管应用程序进程63、65、67使用对应于应通知对象类型的构造器69来把应通知对象跟踪进一个本地列表。
然后参见图3B,应用程序管理器62经由异步“广播”71将消息38传送给每个托管应用程序进程63、65、67,以开始引发行为变化,其被在每个托管应用程序进程63、65、67中实现的监听器(“L”)64、66、68接收。广播71有两个功能。第一,广播71通知每个托管应用程序进程63、65、67:应用程序管理器62正在请求一个行为变化。第二,广播71识别所请求的行为变化类型。作为示例,这些变化可能会影响每个托管应用程序进程63、65、67的属性或外观以及感觉特征。其他类型的变化也是可能的。
最后参见图3C,单独的托管应用程序进程63、65、67实现了所请求的行为变化。每个托管应用程序进程63、65、67采取的动作类型取决于定义每个应通知对象69的代码。监听器64、66、68负责在每个托管应用程序进程63、65、67的相应地址空间中查找每组被跟踪的应通知对象并遍历应通知对象以实现行为变化。其他类型的动作是可能的。
引发异步行为变化的方法
图4是一个流程图,示出了根据本发明的、在一个托管的应用程序进程中引发异步行为变化的方法90。方法100被描述成一系列的进程操作或步骤,例如其可由图2的运行时环境31或者其他组件来执行。
初始时,装载应用程序管理器31(框91)。当开始一个被引发的行为变化时,应用程序管理器31识别实现行为变化所需的应通知对象35的类型(框92)。然后,应用程序管理器31通过分别定义在每个托管应用程序进程32上的句柄36调用所有已创建的托管应用程序进程32的监听器34(框93)。然后,描述行为变化的消息38被广播到托管应用程序进程32(框94)。处理无限地继续下去直到应用程序管理器31被终止时为止。
执行托管应用程序进程的例程
图5是一个流程图,其示出了用于执行托管应用程序进程32的例程100,托管应用程序进程32在图4的方法90中使用。这个例程的一个目的是发起一个异步行为变化以响应从应用程序管理器31中收到的变化请求。
初始时,由托管应用程序进程32的托管代码平台执行应用程序33(框101)。创建句柄36,并在监听句柄36的托管应用程序进程32中启动一个专用的控制线程(框102)。该控制线程立即进入不活动的休眠模式(框103)。当从应用程序管理器31接收到变化请求时(框104),该控制线程被唤醒(框105)并处理一个被引发的行为变化(框106),如下面参照图6进一步描述的。处理无限地继续下去直到应用程序管理器31被终止时为止。
处理变化的例程
图6是一个流程图,作为例子示出了例程110,其用于处理一个被引发的异步行为变化,该变化在图5的例程100中使用。这个例程的一个目的是通过执行应通知对象110、111在托管应用程序进程102上实现行为变化。当监听器34从应用程序管理器31中收到消息38的广播时,监听器34触发该执行。然后,监听器34负责在托管应用程序进程32的相应地址空间中查找每组应通知对象35,并遍历应通知对象35以实现该行为变化。
初始时,识别所请求的行为变化的类型(框111)。在一个实施例中,通过识别(框113)和通知一个或多个的注册属性变化监听器(框114),可以实现托管应用程序进程32的属性变化(框112)。
在另一个实施例中,可以实现托管应用程序进程32的用户界面的外观和感觉特征的变化(框116)。如果所请求的变化识别了一个有效的外观和感觉类(框117),那么外观和感觉行为变化是必要的。托管应用程序进程32遍历(框118~120)每个注册的顶级用户界面组件并发送外观和感觉变化消息(框119)。然后以适于使用的工具包的方式实现这个变化。例如,这个变化可以被排队以暂时推迟执行或者可以被立即执行。在实现变化之后,该例程返回。
作为例子,如果由应用程序管理器31发送的消息38包括“PROPERTY_CHANGE propertyName=value”,那么监听器34识别那些为<propertyName>注册的属性变化监听器并使用propertyChanged()调用通知每个属性变化监听器。
作为另一个例子,如果由应用程序管理器31发送的消息38包括“LANDF_CHANGE lookAndFellClassName”,那么监听器34确定<lookAndFellClassName>是有效的并且不同于当前的外观和感觉。如果改变是必要的,那么监听器34遍历所有注册的顶级用户界面组件并发送外观和感觉变化消息。行为变化的其他类型是可能的。
虽然已经参照本发明的实施例具体地示出和描述了本发明,但本领域的技术人员将明白,在不脱离本发明的精神和范围的情况下可以进行形式和细节上的前述变化和其他变化。
Claims (14)
1.一种在托管应用程序进程中引发异步行为变化的系统,其包括:
一个托管应用程序进程,其包括
至少一个应用程序,其被提供为在托管代码平台控制下的面向对象程序代码;和
一个与执行应用程序管理器进程逻辑地进行通信的句柄;
一个本地列表,以识别一个或多个对应于应通知对象的构造器,所述应通知对象被提供为面向对象程序代码;
至少一个控制线程,以将变化请求广播到所述托管应用程序进程;
一个监听器,以遍历由每个识别的构造器所跟踪的所述应通知对象以在所述托管应用程序进程中实现行为变化。
2.根据权利要求1所述的系统,进一步包括:
一个指定所述监听器的控制线程,其中使所述控制线程相对于接收所述变化请求休眠。
3.根据权利要求2所述的系统,其中在所述控制线程上定义的流中从所述应用程序管理器中传送信息。
4.根据权利要求3所述的系统,其中所述句柄包括TCP套接字,所述流包括TCP流。
5.根据权利要求1所述的系统,进一步包括:
一个或多个构造器,其对应于所述应通知对象,并为垃圾回收指定所述应通知对象的资格。
6.根据权利要求1所述的系统,进一步包括:
与至少一个应用程序相关的至少一个属性,其通过所述至少一个这样的应通知对象被改变。
7.根据权利要求6所述的系统,进一步包括:
至少一个属性变化监听器,其指定至少一个属性变化。
8.根据权利要求7所述的系统,进一步包括:
所述的至少一个属性变化监听器相对于接收所述变化请求被通知。
9.根据权利要求6所述的系统,进一步包括:
与所述至少一个应用程序相关的至少一个外观和感觉特征,其通过所述至少一个这样的应通知对象被改变。
10.根据权利要求9所述的系统,进一步包括:
至少一个注册的顶级用户界面组件,其指定所述至少一个外观和感觉特征的变化。
11.根据权利要求10所述的系统,其中所述监听器相对于接收所述的变化请求遍历各个至少一个注册的顶级用户界面组件。
12.根据权利要求11所述的系统,其中实现至少一个外观和感觉特征变化的完成,包括以下至少一个:
一个队列,其相对于接收所述的变化请求排队所述的至少一个注册的顶级用户界面组件以暂时推迟执行;和
一个处理线程,其相对于接收所述的变化请求立即执行所述的至少一个注册的顶级用户界面组件。
13.根据权利要求1所述的系统,其中所述的面向对象程序代码是用Java编程语言编写的。
14.根据权利要求1所述的系统,其中所述的托管代码平台是Java虚拟机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/745,019 | 2003-12-22 | ||
US10/745,019 US7421707B2 (en) | 2003-12-22 | 2003-12-22 | System and method for inducing asynchronous behavioral changes in a managed application process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1797346A true CN1797346A (zh) | 2006-07-05 |
CN100343811C CN100343811C (zh) | 2007-10-17 |
Family
ID=34634526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101024194A Active CN100343811C (zh) | 2003-12-22 | 2004-12-22 | 在托管应用程序进程中引发异步行为变化的系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7421707B2 (zh) |
EP (1) | EP1557757A3 (zh) |
JP (1) | JP4000327B2 (zh) |
CN (1) | CN100343811C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882067B (zh) * | 2009-05-08 | 2014-02-19 | 上海科泰世纪科技有限公司 | 实现函数托管的方法和装置 |
CN108139919A (zh) * | 2015-09-22 | 2018-06-08 | 微软技术许可有限责任公司 | 外部进程用户界面隔离和监测 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100587563B1 (ko) * | 2004-07-26 | 2006-06-08 | 삼성전자주식회사 | 상황인지 서비스를 제공하는 장치 및 방법 |
US7457671B2 (en) * | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
US7979405B2 (en) | 2005-01-14 | 2011-07-12 | Microsoft Corporation | Method for automatically associating data with a document based on a prescribed type of the document |
US7966286B2 (en) | 2005-02-14 | 2011-06-21 | Microsoft Corporation | Hierarchical management of object schema and behavior |
FR2893803A1 (fr) * | 2005-11-21 | 2007-05-25 | Nec Technologies Uk Ltd | Methode de communication entre une cartre (u)sim en mode serveur et un client |
US20070136201A1 (en) * | 2005-12-12 | 2007-06-14 | Google Inc. | Customized container document modules using preferences |
US8185819B2 (en) | 2005-12-12 | 2012-05-22 | Google Inc. | Module specification for a module to be incorporated into a container document |
US8677319B2 (en) * | 2006-07-25 | 2014-03-18 | International Business Machines Corporation | Computer method and system for composite state management of software change requests |
US20090006996A1 (en) * | 2006-08-07 | 2009-01-01 | Shoumen Saha | Updating Content Within A Container Document For User Groups |
US8407250B2 (en) | 2006-08-07 | 2013-03-26 | Google Inc. | Distribution of content document to varying users with security customization and scalability |
US8185830B2 (en) * | 2006-08-07 | 2012-05-22 | Google Inc. | Configuring a content document for users and user groups |
US8954861B1 (en) | 2006-08-07 | 2015-02-10 | Google Inc. | Administrator configurable gadget directory for personalized start pages |
US8261263B2 (en) * | 2006-11-30 | 2012-09-04 | International Business Machines Corporation | JVM system scope initializer |
US20080282205A1 (en) * | 2007-02-06 | 2008-11-13 | Access Systems Americas, Inc. | Unified launcher user interface system and method for integrating multiple disparate environments on an electronic device |
US8073882B2 (en) | 2007-07-11 | 2011-12-06 | Mats Stefan Persson | Method, system and computer-readable media for managing software object handles in a dual threaded environment |
US20090210882A1 (en) * | 2008-02-18 | 2009-08-20 | International Business Machines Corporation | System and methods for asynchronously updating interdependent tasks provided by disparate applications in a multi-task environment |
CN108595220B (zh) * | 2018-04-25 | 2021-04-16 | 上海掌门科技有限公司 | 应用组件的处理方法、设备及计算机可读存储介质 |
US12001391B2 (en) | 2021-09-16 | 2024-06-04 | Cohesity, Inc. | Managing objects stored at a remote storage |
US20230244633A1 (en) * | 2022-01-31 | 2023-08-03 | Cohesity, Inc. | Extending an expiration time of an object associated with an archive |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266716B1 (en) * | 1998-01-26 | 2001-07-24 | International Business Machines Corporation | Method and system for controlling data acquisition over an information bus |
US6154681A (en) * | 1998-04-03 | 2000-11-28 | Johnson Controls Technology Company | Asynchronous distributed-object building automation system with support for synchronous object execution |
US6263360B1 (en) * | 1998-06-01 | 2001-07-17 | Sri International | System uses filter tree and feed handler for updating objects in a client from a server object list |
EP0967549A3 (en) * | 1998-06-24 | 2002-02-13 | Intellution Inc. | Processing asynchronously called operations of objects |
US7194743B2 (en) * | 2000-12-12 | 2007-03-20 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user interface and an executing application using property paths |
-
2003
- 2003-12-22 US US10/745,019 patent/US7421707B2/en active Active
-
2004
- 2004-12-21 EP EP04258015A patent/EP1557757A3/en not_active Withdrawn
- 2004-12-21 JP JP2004370293A patent/JP4000327B2/ja active Active
- 2004-12-22 CN CNB2004101024194A patent/CN100343811C/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882067B (zh) * | 2009-05-08 | 2014-02-19 | 上海科泰世纪科技有限公司 | 实现函数托管的方法和装置 |
CN108139919A (zh) * | 2015-09-22 | 2018-06-08 | 微软技术许可有限责任公司 | 外部进程用户界面隔离和监测 |
CN108139919B (zh) * | 2015-09-22 | 2020-11-10 | 微软技术许可有限责任公司 | 外部进程用户界面隔离和监测 |
Also Published As
Publication number | Publication date |
---|---|
US7421707B2 (en) | 2008-09-02 |
EP1557757A2 (en) | 2005-07-27 |
JP2005209173A (ja) | 2005-08-04 |
JP4000327B2 (ja) | 2007-10-31 |
CN100343811C (zh) | 2007-10-17 |
US20050138640A1 (en) | 2005-06-23 |
EP1557757A3 (en) | 2005-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100343811C (zh) | 在托管应用程序进程中引发异步行为变化的系统 | |
US6324619B1 (en) | Process and system for managing run-time adaptation for general purpose distributed adaptive applications | |
US8171491B2 (en) | Object synchronization in shared object space | |
CN100498699C (zh) | 在运行时系统中共享对象 | |
CN1989488B (zh) | 运行时系统的鲁棒共享 | |
US6330717B1 (en) | Process and system for developing an application program for a distributed adaptive run-time platform | |
US6757890B1 (en) | Methods and apparatus for enabling local Java object allocation and collection | |
KR100453723B1 (ko) | 감소된런-타임메모리공간의요구를가지고실행쓰레드들을실행하기위한컴퓨터시스템및방법 | |
US6279028B1 (en) | Operating system having a mechanism for handling a group of related processes residing on separate machines | |
US5842226A (en) | Virtual memory management for a microkernel system with multiple operating systems | |
US20050086237A1 (en) | Shared queues in shared object space | |
US20020087589A1 (en) | Methods and apparatus for optimizing garbage collection | |
CN1208889A (zh) | 可分java小程序 | |
CA2480459A1 (en) | Persistent key-value repository with a pluggable architecture to abstract physical storage | |
US20060026379A1 (en) | Effective memory management method and device in object-oriented application | |
US6223179B1 (en) | Database server for handling a plurality of user defined routines (UDRs) expressed in a plurality of computer languages | |
US20070003347A1 (en) | State machine-driven interactive system and associated methods | |
Yokote et al. | Reflective object management in the Muse operating system | |
JP2004529419A (ja) | ソフトウェアアプリケーションローディング用のソフトウェアエンジンおよび方法 | |
US6829686B2 (en) | Method and apparatus for bag-to-set, buffering remembered set | |
CN100336344C (zh) | 应用程序服务器集群中用于会话作废处理的系统和方法 | |
EP1213649A1 (en) | A memory management apparatus, method and program and a computer readable storage medium storing a memory management program | |
JP2007094871A (ja) | メモリ管理装置及びメモリ管理方法 | |
US6658647B1 (en) | Access to resource files stored in ROM | |
CN1190211A (zh) | 面向对象的多媒体结构 |
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 |