用于对装置上的共享资源进行动态仲裁的系统的制作方法

文档序号:6656357阅读:164来源:国知局

专利名称::用于对装置上的共享资源进行动态仲裁的系统的制作方法
技术领域
:本发明大体而言涉及装置的运行,且更具体而言涉及一种用于对装置上的共享资源进行动态仲裁的系统。
背景技术
:技术进步促成了大量数据网络的开发及部署。这些网络既包括诸如因特网等公用数据网络,也包括诸如无线通信网络等专用网络。这些网络的用户具有存取种类繁多的可用信息及服务的能力。例如,无线装置拥有者现在可下载种类繁多的应用程序以供在其装置上执行。其它技术进步已产生了更小且更强大的个人计算装置。例如,当前存在各种各样的体积小、重量轻并可易于由用户携带的便携式无线电话、个人数字助理(PDA)及寻呼装置。通常,这些装置会受到资源的严重限制。例如,屏幕大小、可用存储器及文件系统空间的大小、输入及输出能力及处理能力的大小可各自受到装置尺寸较小的限制。随着可在包括受到资源严重限制的个人计算装置在内的种类繁多的计算装置上下载的应用程序的增加,资源分配已变得越来越重要。装置资源包括显示器、小键盘、声音处理器、调制解调器、存储装置、通信信道及其它类型的装置资源。由于每一装置均具有有限数量的资源,尤其是那些受到资源严重限制的装置,因此向竞争的应用程序分配装置资源的方式决定了装置如何工作。例如,无线电话可处于话音呼叫、数据调用、应用程序运行、SMS消息处理等等中。如果存在这些不同的状态,则当前尚不存在用于在这些不同状态期间确定哪一应用程序应得到对装置上一装置资源的控制的动态、简单且有效的机制。例如,如果一音乐程序正在播放声音且有电话呼叫到达,则振铃器/话音应用程序应得到声音资源。在此同一时间期间,日历警报或SMS通知是否也应利用声音资源?因此,需要在执行于一装置上的竞争的应用程序之间进行有效仲裁,以确定哪一应用程序应利用一特定的装置资源。在当前系统中,资源仲裁通常是使用一简单的先到先服务过程或通过一组严格的基于优先权的决定来进行的。在这两种情况下,仲裁算法均为硬编码的且未考虑到当前装置在其中运行的动态环境。另外,网络运营商、装置制造商及应用程序开发者希望对于如何在装置上分配装置资源具有一定的动态控制。令人遗憾的是,使用静态仲裁技术的当前仲裁系统无法满足此种需要。因此,需要一种使一装置上的装置资源能够动态分配给执行于所述装置上的竞争应用程序的动态仲裁系统。此系统还应提供一种使第三方(例如网络运营商)能够具有一关于如何分配所述装置上的装置资源的输入的机制。
发明内容在一个或多个实施例中,提供一种允许动态分配一装置上的装置资源的包括方法及设备的动态仲裁系统。在一实施例中,提供一种用于对一装置上一装置资源的分配进行仲裁的方法。所述方法包括自一请求分配所述装置资源的请求应用程序接收一请求,并确定一拥有应用程序拥有所述装置资源。所述方法还包括将拥有者信息与请求者信息相关联以形成一仲裁请求,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息。所述方法还包括对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定,并根据所述仲裁决定来分配所述装置资源。在一实施例中,提供一种用于对一装置上一装置资源的分配进行动态仲裁的设备。所述设备包括一资源管理器,所述资源管理器包括用于自一请求分配所述装置资源的请求应用程序接收一请求的逻辑、用于确定一拥有应用程序拥有所述装置资源的逻辑及用于将拥有者信息与请求者信息相关联以形成一仲裁请求的逻辑,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息。所述设备还包括一资源仲裁器,所述资源仲裁器运行以对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定。在一实施例中,提供一种用于对一装置上一装置资源的分配进行仲裁的设备。所述设备包括用于自一请求分配所述装置资源的请求应用程序接收一请求的装置及用于确定一拥有应用程序拥有所述装置资源的装置。所述设备还包括用于将拥有者信息与请求者信息相关联以形成一仲裁请求的装置;其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息。所述设备还包括用于对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定的装置、及用于根据所述仲裁决定来分配所述装置资源的装置。在一实施例中,提供一种计算机可读媒体,其包括在由一装置中的一处理器执行时运行以对所述装置中一装置资源的分配进行动态仲裁的指令。所述计算机可读媒体包括用于自一请求分配所述装置资源的请求应用程序接收一请求的指令及用于确定一拥有应用程序拥有所述装置资源的指令。所述计算机可读媒体还包括用于将拥有者信息与请求者信息相关联以形成一仲裁请求的指令;其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息。所述计算机可读媒体还包括用于对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定的指令、及用于根据所述仲裁决定来分配所述装置资源的指令。在阅读完下文所述的具体实施方式及权利要求书后,将易知本发明的其他方面、优点及特征。结合附图参阅下文详细说明,将更易得知本文所述实施例的上述方面及所伴随的优点,附图中图1显示一运行以分配一装置中的装置资源的动态分配系统的一实施例;图2显示一用于分配一装置中的装置资源的动态分配系统的一实施例的功能图3显示一包括一动态仲裁系统的一实施例的装置的一实施例;图4显示一种方法的一实施例,所述方法用于提供一用于一装置中的动态仲裁系统的一实施例;图5显示一种方法的一实施例,所述方法用于运行一资源仲裁器以提供一动态仲裁系统的一实施例;图6显示一适于与一动态仲裁系统的一个或多个实施例一起使用的资源控制架构的一实施例;及图7显示根据一动态仲裁系统的一个或多个实施例如何在两个应用程序之间分配一装置资源的实例。具体实施例方式下文的详细说明阐述一运行以动态分配一装置中的装置资源的动态分配系统的一个或多个实施例。在一实施例中,应用程序通过向一资源管理器传输一分配请求来请求分配一装置资源。在一实施例中,所述分配请求包括描述所述请求应用程序的请求者信息。如果所述装置资源当前由一应用程序(拥有者应用程序)拥有,则将所述请求者信息与拥有者信息相组合以形成一仲裁请求。在一实施例中,所述拥有者信息描述拥有者应用程序及装置资源的状态。一资源仲裁器根据仲裁规则来处理所述仲裁请求以产生一指示要如何分配所述装置资源的仲裁决定。然后,使用所述仲裁决定来分配所述装置资源。所述系统适合与包括(但不限于)如下在内的任一类型的有线或无线装置一起使用台式计算机,笔记本计算机,无线电话,寻呼机,PDA,电子邮件装置,图形输入板计算机,或任何其它类型的有线或无线装置。在一个或多个实施例中,所述分配系统与一在所述装置上执行的的运行时环境交互作用,所述运行时环境用于(例如)通过提供对装置特定资源的广义调用来简化所述装置的运行。一种这样的运行时环境是由位于SanDiego,California的QUALCOMM公司开发的BinaryRuntimeEnvironmentforWireless(BREW)软件平台。在下文说明中,将假定所述动态分配系统的一实施例是使用一正执行一运行时环境(例如BREW软件平台)的无线装置来实施。然而,所述动态分配系统的一个或多个实施例还适合与其它类型的运行时环境一起使用来动态分配有线及无线装置上的装置资源。此外,术语"装置资源"在本文中用于描述一装置上的任一类型的硬件或软件资源,包括(但不限于)显示器、声音处理器、扬声器、小键盘、调制解调器、网络接口、文件系统、存储装置或可作为所述装置的一部分的任一其他类型的装置资源。图1显示一运行以分配一装置上的装置资源的动态分配系统100的一实施例。系统100包括一装置102—此处为一通过一无线通信信道106与一数据网络104进行通信的无线终端机。数据网络104包括任一类型的数据网络,其可包括(但不限于)有线数据网络、无线数据网络、专用数据网络或公共数据网络、或其任一组合。系统100还包括一服务器108,服务器108通过一通信信道120耦联至数据网络104以为与数据网络104进行通信的装置提供服务。例如,装置102可为一无线电话,且服务器108可为向所述电话提供电信服务的一全国性电信网络的一部分。通信信道120可为任一类型的有线或无线通信信道。也与数据网络104进行通信的是一第二服务器110。第二服务器110也通过一无线通信信道122与数据网络104进行通信。第二服务器110可为运行以为与数据网络104进行通信的网络实体提供服务的任一类型的服务器。在一实施例中,装置102包括一资源仲裁器112及仲裁规则114。资源仲裁器112运行以根据仲裁规则114来仲裁对装置102上装置资源的请求。例如,装置102包括在装置102上执行的用来提供装置用户所希望的特征及功能的应用程序116。例如,应用程序116可如在124处所示自第二服务器IIO下载至装置102中。在其执行期间,应用程序116尝试着控制装置102上的一个或多个装置资源118。例如,在图1中,装置资源118包括一装置显示器、声音处理器、调制解调器及小键盘,不过,装置资源118可如上所述包括任何其它装置资源。资源仲裁器112运行以接收仲裁请求,以仲裁哪一应用程序116应分配到对装置资源118的利用。资源仲裁器112根据仲裁规则114来处理所述仲裁请求,以产生一指示如何将装置资源118分配给应用程序116的仲裁决定。在一实施例中,资源仲裁器112及仲裁规则114如126所示自服务器108下载至装置102中。因此,通过下载资源仲裁器112的一特定版本及/或特定的一组仲裁规则114,服务器108可动态控制如何在装置102上分配装置资源118。在一个或多个实施例中,服务器108、装置102及第二服务器110可为任一类型的计算装置且其与数据网络104的相关联连接可为无线连接、有线连接或其任一组合。因此,所述动态仲裁系统的各实施例运行以使一服务器能够控制如何在一装置102上分配装置资源,且这些实施例可使用实际上任何具有各种服务器及终端机的网络配置来实施。图2显示一用于分配一装置(例如图1中所示的装置102)中的装置资源的动态仲裁系统200的一实施例的功能图。动态仲裁系统200包括一资源管理器202、资源状态204、资源仲裁器206及仲裁规则208。图中还显示一装置资源210及执行于所述装置上且大体显示于212处的应用程序(1-4)。资源管理器202包括一CPU、处理器、门阵列、离散逻辑、或其它硬件或软件、或其任一组合,并运行以管理装置资源210。装置资源210可包括上文所述的任一类型的装置资源。资源状态204包括硬件、软件或其任一组合。在一实施例中,资源状态204包括关于装置资源210的信息及/或关于当前资源拥有者的信息(拥有者信息)。例如,将一当前分配到装置资源210的应用程序视为资源拥有者、当前拥有者或拥有应用程序。例如,在一实施例中,资源状态204包括关于当前拥有者的信息,所述信息包括一当前拥有者标识符(ID)、一个或多个组群ID、特权状态、获取资源的理由、一让与列表及/或关于当前拥有者或装置资源210的任何其它信息。在一实施例中,所述让与列表标识所述当前拥有者愿意将装置资源210释放给哪些应用程序或组群(即特权类别)。在一实施例中,此列表在由资源仲裁器206所实施的仲裁过程期间处于控制地位。在另一实施例中,将该让与列表视为仅是对资源仲裁器206的关于应该如何决定仲裁的建议。资源管理器202运行以保持、更新、改变、增加、删减或以其它方式处理在资源状态204中所包含的信息。资源仲裁器206包括硬件、软件或其任一组合,并运行以使用仲裁规则208来仲裁对装置资源210的利用。例如,在一实施例中,资源仲裁器206可为一程序模块且仲裁规则208可为存储于一存储器中的参数,所述参数由资源仲裁器206检索并经处理以动态分配装置资源210。在一个或多个实施例中,资源管理器202及资源仲裁器206可实施成执行于所述装置上的运行时环境的可下载扩展形式;例如,其可为可下载的BREW扩展形式。在动态仲裁系统200的一实施例的运行期间,一个或多个应用程序212向资源管理器202请求利用装置资源210。如果装置资源210当前为另一应用程序所拥有,则资源管理器202通过下述方式作出响应汇编一包括关于所述请求应用程序的信息(请求者信息)及从资源状态204中导出的关于装置资源210的当前拥有者的信息(拥有者信息)的仲裁请求。将所述仲裁请求发送至资源仲裁器206,如在214处所示。资源仲裁器206使用仲裁规则208来处理所述仲裁请求以产生一发送回至资源管理器202的仲裁决定,如在216处所示。然后,所述资源管理器运行以根据所述仲裁决定来分配装置资源210。在一实施例中,应用程序212可具有一组组群ID,其中一个决定是否给与一特定应用程序关于装置资源210的特权。例如,将一组群ID与一组适用于所有具有该组群ID的应用程序的权限相关联。所述权限之一界定所述应用程序关于装置资源210的特权状态。当一应用程序首先获得对装置资源210的利用时,其向资源管理器202(通过分配请求)提供信息,所述信息包括它的一组组群ID及想要利用装置资源210的理由。想要利用装置资源210的理由选自数种所枚举的类型之一。如果所述应用程序得到特权一此根据其组群ID加以确定,则其可限制哪些应用程序可以取走装置资源210。例如,所述应用程序可规定一标识装置资源210所将让与的应用程序的让与列表。例如,所述让与列表中的应用程序可由其组群ID来标识。当另一应用程序请求利用装置资源210时,资源管理器产生一包括关于当前资源拥有者的信息(拥有者信息)及关于请求应用程序的信息(请求者信息)的仲裁请求。作为所述仲裁请求的一部分,特权状态或资源拥有者及请求者连同其想要得到所述资源的相关理由及任何让与列表一起传送至资源仲裁器206。传送至资源仲裁器206的信息也可包括任何其它参数或准则。例如,传送至资源仲裁器206的信息可包括用户偏好、当前装置运行模式、运营商偏好或可用来对所述请求进行仲裁的任何其它类型的信息。然后,资源仲裁器206使用此信息来决定应如何分配装置资源210。在一实施例中,所述当前资源拥有者可动态改变其关于装置资源210的优先权。例如,一应用程序可具有一提供特权的组群ID,所述特权允许其具有一用以获得装置资源210的高优先权。在最初利用装置资源210后一此时限制其它应用程序获得装置资源210,所述应用程序可改变其优先权且由此允许其它应用程序获得对装置资源210的利用。例如,所述应用程序可改变其需要所述装置资源的理由,或改变其让与列表以使其它应用程序能够获得所述装置资源。因此,动态仲裁系统200运行以为拥有资源之应用程序提供灵活性,以或者释放装置资源210、或者使装置资源210更容易供其它应用程序利用。在另一实施例中,动态仲裁系统200提供一允许一应用程序登记一回叫功能的回叫机制。所述回叫功能允许动态仲裁系统200在装置资源210的状态出现改变时通知所述应用程序。例如,所述回叫功能可用于在一装置资源210空闲时或在一装置资源210因分配给另一应用程序而忙时通知一应用程序。因此,动态仲裁系统200运行以动态分配对装置102上一个或多个装置资源210的利用。例如,在一实施例中,装置102可包括一用于所述装置上每一装置资源210的资源管理器。资源仲裁器206与每一资源管理器进行通信以分别处理与每一装置资源210有关的仲裁请求。此外,资源仲裁器206可对每一装置资源210使用相同的或不同的仲裁规则208。为了提供动态运行,资源仲裁器206及仲裁规则208可自一网络实体下载至装置102,从而允许一第三方具有关于如何在装置102上分配装置资源210的输入。例如,在一实施例中,装置102为一无线电话且资源仲裁器206及仲裁规则208自一作为一全国性电信运营商网络的一部分的网络服务器下载至装置102。通过此种方式,为所述电信运营商提供一关于如何在装置102上分配装置资源210的输入。图3显示一包括一动态仲裁系统的一实施例的装置300的一实施例。装置300包括全部耦接至一内部数据总线312的处理逻辑302、存储器304、声音逻辑306、照相机逻辑308及I/O接口310。为清楚起见,将假定声音逻辑306及照相机逻辑308为装置300中可分配给执行于装置300上的应用程序的仅有的装置资源。然而,应注意,所述动态仲裁系统的一个或多个实施例还适合与具有更多或更少资源及/或不同功能元件的其它装置一起使用。处理逻辑302包括一CPU、处理器、门阵列、离散逻辑、或其它硬件或软件、或其任一组合。因此,处理逻辑302通常包括用于执行机器可读指令以实施本文所述功能的逻辑。例如,可自例如以下等计算机可读媒体将指令载入装置300中软盘,CDROM,闪速存储器,或其他通过接口310介接装置300的计算机可读媒体。在另一实施例中,可经由接口310将所述指令自一网络资源(例如一网络服务器或任何其它类型的网络资源)下载至装置300中。在由处理逻辑302执行时,所述指令提供本文所述的动态仲裁系统的一个或多个实施例。存储器304包括任何类型的RAM、ROM、硬盘、软盘、闪速存储器或任何其它类型的存储装置。声音逻辑306包括用于控制一声音装置(例如一扬声器、放大器、声音处理器或任何其它类型的声音装置)的逻辑。照相机逻辑308包括用于控制一照相机装置(例如一CCD照相机或任何其它类型的照相机装置)的逻辑。I/O接口310包括使装置300能够介接外部装置或系统的硬件及/或软件或其任一组合。例如,I/O接口310包括用于介接至外部存储系统(例如磁盘驱动器或其它存储装置)的逻辑。接口310还包括用于介接至一外部系统(例如一本地计算机系统)的逻辑。另外,所述接口还包括用于介接数据网络从而实现与远程计算机及服务器的通信的逻辑。在装置300的一实施例的运行期间,由处理逻辑302执行的程序指令激活一运行时环境314。例如,所述运行时环境可为BREW运行时环境314。在一实施例中,所述程序指令的执行还激活一声音管理器320及照相机管理器318。声音管理器320运行以控制声音资源306,以使运行于装置300上的应用程序能够控制自装置300输出的声音。照相机管理器318运行以控制照相机资源308,以使运行于装置300上的应用程序能够自一照相机装置获得图像及视频。在另一实施例中,声音管理器320及/或照相机管理器318可包括一CPU、处理器、门阵列、离散逻辑、或其它硬件或软件、或其任一组合。声音管理器318及照相机管理器320自运行于所述装置上的应用程序(322,324,326)接收要利用其所控制的装置资源的请求。应用程序(322,324,326)可为适于在装置300上执行的任何类型的应用程序。例如,所述应用程序可为多媒体应用程序、日历应用程序、电子邮件应用程序或当执行于所述装置上时会提供有用特征及/或功能的任一其它类型的应用程序。为了利于分配装置资源,声音管理器320及照相机管理器318将每一相应的装置资源的状态信息保持于存储器304中。例如,声音管理器320将声音状态信息328保持于存储器304中。声音状态328标识与声音资源306的分配及使用相关联的各种参数。同样地,照相机管理器318将照相机状态信息330保持于存储器304中。照相机状态330标识与照相机资源308的分配及使用相关联的各种参数。装置状态304标识所述装置的当前运行模式,例如,所述装置运行模式可以是空闲、运行一应用程序、接收一消息、处理一话音呼叫、播放一游戏、或是任何其它类型的装置运行模式。当应用程序(322,324,326)执行于装置300上时,其向声音管理器318及照相机管理器320提交要利用相关联装置资源的请求。所述请求经处理以将声音资源306及照相机资源308中的每一者分配给选定的应用程序。在其中一装置资源当前尚未分配的情况下,所述装置资源可容易地分配给一请求应用程序。然而,如果一装置资源当前已分配给一个应用程序,则需要对来自另一应用程序的任何要利用该装置资源的请求进行仲裁,以决定哪一应用程序将分配到所述装置资源。在一个或多个实施例中,所述动态仲裁系统运行以对将一装置资源分配给执行于装置300上的其中一个应用程序进行仲裁。例如,一应用程序向适当的资源管理器提交一对一装置资源的请求。如果所述装置资源当前已分配给另一应用程序,则所述资源管理器向资源仲裁器316提交一仲裁请求。所述仲裁请求包括关于所述请求应用程序的信息(请求者信息)及关于所述装置资源的当前拥有者的信息(拥有者信息)。例如,将关于所述装置资源的当前拥有者的信息保持于对应的资源状态信息中。在一实施例中,资源仲裁器316根据存储于存储器304中的仲裁规则332来处理所述仲裁请求。例如,在一实施例中,仲裁规则322自一网络服务器下载至装置300,以使所述网络服务器能够提供关于如何在装置300中对资源请求进行仲裁的输入。对所述仲裁过程的更详细说明提供于本文件的另一部分中。所述仲裁请求经资源仲裁器316处理以产生一回送至提交所述仲裁请求的资源管理器的仲裁决定。然后,所述资源管理器根据所述仲裁决定来分配所述装置资源。应注意,对装置300中所示动态仲裁系统的说明仅图解说明一个实施例,且其它配置也可提供本文中所述的功能。例如,可在所述实施例的范围内组合、重新布置、改变、增加或删减装置300的各种功能元件。资源仲裁器在一个或多个实施例中,提供一资源仲裁器316,其作为中心决定者运行以决定是否可将一装置资源转交给一请求应用程序(或对象)。在一实施例中,资源仲裁器316在制造期间安装在装置300上。在另一实施例中,资源仲裁器316可由一网络服务器定制并实施成一可根据需要加以更新或替换的可下载模块。例如,在一其中装置300为一无线电话的实施方案中,资源仲裁器316可经定制并自一由一通信OEM/运营商运行的网络服务器下载至电话中。较佳地,使用单个资源仲裁器316来仲裁对一装置300上所有装置资源的请求;不过,也可在所述实施例的范围内在一装置300上使用多个仲裁器。在一实施例中,自一资源管理器将各种信息传送给资源仲裁器316,且该信息用于产生一仲裁决定。在一实施例中,传送至资源仲裁器316的信息包括关于所述请求应用程序的信息(请求者信息)及关于所述装置资源的当前拥有者的信息(拥有者信息)。不过,在其它实施例中,向所述资源仲裁器传送其它类型的信息,且此种其他信息包括装置状态信息334、用户偏好信息、第三方偏好信息及适合由所述资源仲裁器用来产生一仲裁决定的任何其它类型的信息。另外,在一实施例中,所述资源仲裁器是可扩展的,以便可对所述仲裁过程进行修改以在不同时间周期或运行状态期间使用不同的信息项来提供一仲裁决定。下文提供对可传送至资源仲裁器316以便产生一仲裁决定的请求者信息及拥有者信息的简要说明,不过,可传送至所述资源仲裁器的信息并不仅限于所示列表。A、资源拥有者信息1、拥有者类别标识符(CLSID)及示例指针2、获取资源的理由3、让与控制信息a、让与标识符列表b、列表计数(-1=全部,0=无,其他方式的计数)B、请求者信息1、请求者类别标识符(CLSID)及示例指针2、获取资源的理由3、让与控制信息a、让与标识符列表b、列表计数(-l-全部,0=无,其他方式的计数)图4显示-一种方法400的一实施例,方法400用于提供一用于一装置300中的动态仲裁系统的一实施例。为清楚起见,将参照图3中所示的装置300来阐述方法400的运行。例如,方法400显示在一实施例中如何将声音资源306动态分配给应用程序322、324及326。在方块402处,一第一应用程序将一资源分配请求发送至与所述装置资源相关联的资源管理器。例如,应用程序322将一资源分配请求发送至声音资源管理器320以请求分配声音资源306。所述分配请求包括关于应用程序322的信息;例如所述请求包括上文所述的请求者信息。在方块404处,所述资源管理器将所述装置资源分配给第一应用程序。例如,因为声音资源306当前可供使用,所以声音资源管理器320将声音资源306分配给应用程序322。另外,声音资源管理器320使用在所述分配请求中所提供的请求者信息来更新上文所述的资源拥有者信息。然后,将所述资源拥有者信息存储在声音状态328中。在方块406处,一第二应用程序将一资源分配请求发送至与所述装置资源相关联的资源管理器。例如,应用程序324将一资源分配请求发送至声音资源管理器320以请求分配声音资源306。所述分配请求包括关于应用程序324的信息;例如,所述分配请求包括上文所述的请求者信息。在方块408处,所述资源管理器将一仲裁请求发送至资源仲裁器316。例如,声音资源管理器320将一仲裁请求发送至资源仲裁器316。所述仲裁请求包括来自声音状态328的资源拥有者信息及来自所述分配请求的资源请求者信息。因此,所述仲裁请求为资源仲裁器316提供关于声音资源306的当前拥有者及当前请求者的信息。在方块410处,资源仲裁器316产生一指示应将所述装置资源分配给哪一应用程序的仲裁决定。例如,资源仲裁器316产生所述仲裁决定并将所述决定传输至声音资源管理器320。资源仲裁器316根据存储于存储器304中的仲裁规则332来产生所述仲裁决定。在一实施例中,自一第三方(例如一OEM/运营商)下载资源仲裁器316及仲裁规则332,此允许进行更新并且为所述第三方提供一决定如何在装置300上分配装置资源的机制。对资源仲裁器316如何产生所述仲裁决定的更详细说明提供于本文件的另一部分中。在方块412处,资源管理器根据所述仲裁决定来分配所述装置资源。例如,声音资源管理器320根据所述仲裁决定将声音资源306分配给第一应用程序322或第二应用程序324。声音资源管理器320还以任何新的资源拥有者信息来更新声音状态328。因此,方法400运行以提供一用于一装置300中的动态仲裁系统的一实施例。应注意,方法400仅图解说明一个实施例且可在所述实施例的范围内重新布置、改变、组合、增加或删减方法步骤。例如,可使一应用程序在一资源管理器中登记一回叫功能,以便可根据需要向所述应用程序提供一装置资源的状态及/或可用性。因此,所述仲裁系统可提供其他辅助功能且这些辅助功能仍归属于所述实施例的范围内。实施方案实例下文阐述一运行以分配一装置中的装置资源的动态仲裁系统的一实施例的实施方案实例。要管控的装置资源的实例为音频(装置或音量)装置资源或视觉(显示)装置资源。在一实施例中,所述系统包括一资源管理器,所述资源管理器为包括BREW应用程序在内的应用程序(对象)提供一种用于控制装置资源利用的通用手段。所述资源管理器还协调并管控各对象对装置资源的获取及释放并且还运行以在一装置资源的状态发生改变时通知己登记的对象。某些类型的装置资源每次只能由一个应用程序使用。例如,一声音接口资源只允许一个应用程序使用声音输出。所述系统提供用于决定允许哪一应用程序控制一装置资源的仲裁(即资源仲裁器316)。图5显示一种方法500的一实施例,方法500用于运行一资源仲裁器来提供一动态仲裁系统的一实施例。为清楚起见,将参照图3中所示的装置300来阐述方法500的运行。因此,在一实施例中,方法500由图3中所示的资源仲裁器316实施。在方块502处,在所述仲裁器处接收一仲裁请求。例如,照相机管理器318向仲裁器316提交所述仲裁请求。所述仲裁请求包括关于照相机资源308的当前拥有者的信息及关于请求利用照相机资源308的应用程序的信息。在方法504处,对由照相机资源308的当前拥有者所提供的让与列表实施一测试,以确定所述当前拥有者将把对照相机资源308的控制让与哪些应用程序。所述让与列表为在所述仲裁请求中所提供的当前拥有者信息的一部分。如果所述让与列表规定任一应用程序均可获得对照相机资源308的控制,则所述方法进行至方块510。如果所述让与列表规定没有应用程序可或只有特定应用程序可获得对照相机资源308的控制,则所述方法进行至方块506。在方块506处,实施一测试以确定所述请求应用程序是否为所述让与列表中所标识的应用程序之一。例如,所述让与列表规定可用于标识选定应用程序的组群ID或应用程序ID。如果在所述让与列表中规定了一标识所述请求应用程序的ID,则所述方法进行至方块510。如果所述让与列表中未规定所述请求应用程序,则所述方法进行至方块508。在方块508处,作出一保持照相机资源308的当前拥有者的仲裁决定。由于所述当前拥有者得到特权且所述请求应用程序不在所述让与列表上,因此所述请求应用程序对分配照相机资源308的请求被拒绝。然后,所述方法进行至方块512,在方块512中将所述仲裁决定回送至照相机管理器318。在方块510处,根据选定的准则对来自所述请求应用程序的仲裁请求进行仲裁。例如,在一实施例中,根据仲裁规则330对所述请求进行仲裁。可使用实际上任何准则来决定哪一应用程序将分配到照相机资源308。例如,所述仲裁可基于每一应用程序想要利用照相机资源308的理由、所述装置的运行模式、用户偏好、运营商偏好或任何其它准则。在确定所述仲裁决定后,所述方法进行至方块512,在方块512中将所述仲裁决定回送至照相机管理器318。图6显示一适于与一动态仲裁系统的一个或多个实施例一起使用的资源控制架构600的一实施例。对于受管控的每一装置资源602,均存在一用于控制所述对象的资源接口604、一用于控制利用的IresourceCtl接口606及一资源管理器608。另外,在所有装置资源之间共享一资源仲裁器610。当创建资源接口604的一示例时,其包括IResourceCtl示例612。IResourceCtl示例612与资源管理器608交互作用以获取及释放下面的装置资源602。应注意,即使一个应用程序具有对一装置资源602的控制,另一应用程序也可根据现有仲裁规则在任一时刻控制同一装置资源602。图7显示一图解说明一分配实例的图式700,所述分配实例描述根据一动态仲裁系统的一个或多个实施例如何在两个应用程序之间分配一装置资源。例如,图式700显示包括一资源仲裁器702、资源管理器704、应用程序A706、资源示例A708、应用程序B712及资源示例B714的各种装置实体之间的交互作用。在所述分配实例开始时,应用程序A706向资源示例A708发出一资源请求714,以获取一由资源管理器704管控的装置资源。所述资源请求自资源示例A708转发至资源管理器704,如716所示。将假定这时所述装置资源尚未分配,因而资源管理器704将所述装置资源分配给应用程序A706并发出一回流至应用程序A708的"成功"指示符—其显示在718及720处。这时,所述装置资源已由应用程序A708获得。另外,应用程序A706在资源示例A708中登记一回叫功能,以接收关于所述装置资源的任何状态改变的信息,如在722处所示。然后,应用程序B710向资源示例B712发出一资源请求724,以获取由资源管理器704管控的装置资源。所述资源请求自资源示例B712转发至资源管理器704,如726所示。来自应用程序B710的请求使资源管理器704向资源仲裁器702请求仲裁,如728处所示。资源仲裁器702根据本文所述的各实施例来处理仲裁请求730。资源仲裁器702提供一指示所述装置资源已成功分配给应用程序B710的仲裁结果,如730、732及734所示。因此,这时,应用程序B710己获得所述装置资源。因为应用程序A706已进行了状态改变通知登记(在722处),所以应用程序A706会因所述装置资源的状态发生改变而通过一回叫功能736得到提醒。因此,响应于所述回叫,应用程序A706发出一"得到状态"命令738,所述"得到状态"命令738回送一所述装置资源己分配给另一应用程序且目前正忙的通知。定制资源仲裁器资源仲裁器是决定是否可将一装置资源转交给请求对象的中心决策者。资源仲裁器模块可由OEM/运营商定制并可实施成一使用一类别标识符(CLSID)的可下载模块。存在一种对所有装置资源使用单个资源仲裁器(IResArbiter)的实施方式。在一实施例中,向资源仲裁方法IResArbiter一ConfirmAcquire传送上文所述的资源拥有者信息及请求者信息,以产生所述仲裁决定。如果所述当前拥有者已规定一让与CLSID列表,且在所规定的应用程序ID或组群ID列表中标识了所述请求者,或者如果所述拥有者允许任一ID(如在一非特权拥有者的情况中一般),则所述仲裁器可根据所提供信息的其余部分来决定转移拥有权(最简单的实施方式是同意所述请求)。如果在所述让与CLSID列表上未标识所述请求者,则所述仲裁器拒绝所述请求。下文为一种适用于一执行一BREW运行时环境的装置中的资源仲裁器的ConfirmAcquire方法的一样本实施方式。CResArbiter*pMe-(CResArbiter"po;intstatus=SITEMBUSY;inti^〃//firstcheckclasslistt:oseeifownerwillallowi仁〃switch(pOwner->nclsCouiit;)//allowanyo加toacquireresourceSUCCESS;esse-1:statusbreak7esse:0:statusciefsuit::〃allownoonetoacquire;r挑owrce//checkaccess《reliiKjuislx)list〃i总if3reasonacceptablestatussis〃doesrequesterc;!Lassidmatcliorhasgroupprivilegeif(工SHELL一Clie勿-rivLevel(pMe—iajpIShell,privld,TRUE))[Status=SUXSSS;break;brealc;//Atthispoint,anOEMmaychoosetoaccepttheaccesslist〃permissioncheekssnd/oraddadditionaldecisionalgorithmssuch〃asexaminingthecxtrrentreasonforaccesscorallowingspecific//request:e:rCLiSID'sregardlessoftheowner'saccessii&t,etc,return(status)因此,虽然本文已图解说明并阐述了一种用于一装置中的动态仲裁系统的一个或多个实施例,然而应了解,可对所述实施例作出各种改变,此并不背离其精神或实质特征。因此,本文中的揭示内容及说明旨在例示而非限定本发明的范围,本发明的范围在下文权利要求书中加以规定。权利要求1、一种用于对一装置上一装置资源的分配进行仲裁的方法,所述方法包括自一请求分配所述装置资源的请求应用程序接收一请求;确定由一拥有应用程序拥有所述装置资源;将拥有者信息与请求者信息相关联以形成一仲裁请求,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息;对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定;及根据所述仲裁决定来分配所述装置资源。2、如权利要求1所述的方法,其中所述仲裁步骤由一资源仲裁器实施,且其中所述方法包括将所述资源仲裁器下载至所述装置。3、如权利要求1所述的方法,其中所述拥有者信息包括所述拥有应用程序的一特权状态且所述仲裁步骤包括根据所述拥有应用程序的所述特权状态来确定所述仲裁决定。4、如权利要求1所述的方法,其中所述拥有者信息包括一让与列表且所述仲裁步骤包括根据所述让与列表来确定所述仲裁决定。5、如权利要求4所述的方法,其中所述请求者信息包括一请求者标识符且所述仲裁步骤包括确定所述仲裁决定以便如果所述请求者标识符包含在所述让与列表中则将所述装置资源分配给所述请求应用程序。6、如权利要求1所述的方法,其中所述仲裁步骤包括根据选自包括如下信息的一组信息项中的任何信息来确定所述仲裁决定所述拥有者信息,所述请求者信息,装置状态信息,装置运行模式信息,用户偏好信息,及第三方偏好信息。7、如权利要求l所述的方法,其中所述装置为一无线装置。8、一种用于对一装置上一装置资源的分配进行动态仲裁的设备,所述设备包括:--资源管理器,其包括用于自一请求分配所述装置资源的请求应用程序接收一请求的逻辑;用于确定由一拥有应用程序拥有所述装置资源的逻辑;及用于将拥有者信息与请求者信息相关联以形成一仲裁请求的逻辑,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息;及一资源仲裁器,其运行以对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定。9、如权利要求8所述的设备,其中所述资源仲裁器包括一下载至所述装置的软件模块。10、如权利要求8所述的设备,其中所述拥有者信息包括所述拥有应用程序的一特权状态且所述资源仲裁器运行以根据所述拥有应用程序的所述特权状态来确定所述仲裁决定。11、如权利要求8所述的设备,其中所述拥有者信息包括一让与列表且所述资源仲裁器运行以根据所述让与列表来确定所述仲裁决定。12、如权利要求11所述的设备,其中所述请求者信息包括一请求者标识符且所述资源仲裁器运行以确定所述仲裁决定以便如果所述请求者标识符包含于所述让与列表中则将所述装置资源分配给所述请求应用程序。13、如权利要求8所述的设备,其中所述资源仲裁器运行以根据选自包括如下信息的一组信息项中的任何信息来确定所述仲裁决定所述拥有者信息,所述请求者信息,装置状态信息,装置运行模式信息,用户偏好信息,及第三方偏好信息。14、如权利要求8所述的设备,其中所述装置为一无线装置。15、一种用于对一装置上一装置资源的分配进行仲裁的设备,所述设备包括接收装置,其用于自一请求分配所述装置资源的请求应用程序接收一请求;确定装置,其用于确定由一拥有应用程序拥有所述装置资源;关联装置,其用于将拥有者信息与请求者信息相关联以形成一仲裁请求,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息;仲裁装置,其用于对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定;及分配装置,其用于根据所述仲裁决定来分配所述装置资源。16、如权利要求15所述的设备,其中所述仲裁装置由一资源仲裁器实施,且其中所述设备包括用于将所述资源仲裁器下载至所述装置的装置。17、如权利要求15所述的设备,其中所述拥有者信息包括所述拥有应用程序的一特权状态且所述仲裁装置包括用于根据所述拥有应用程序的所述特权状态来确定所述仲裁决定的装置。18、如权利要求15所述的设备,其中所述拥有者信息包括一让与列表且所述仲裁装置包括用于根据所述让与列表来确定所述仲裁决定的装置。19、如权利要求18所述的设备,其中所述请求者信息包括一请求者标识符且所述仲裁装置包括用于确定所述仲裁决定以便如果所述请求者标识符包含于所述让与列表中则将所述装置资源分配给所述请求应用程序的装置。20、如权利要求15所述的设备,其中所述仲裁装置包括用于根据选自包括如下信息的一组信息项中的任何信息来确定所述仲裁决定的装置所述拥有者信息,所述请求者信息,装置状态信息,装置运行模式信息,用户偏好信息,及第三方偏好信息。21、如权利要求15所述的设备,其中所述装置为一无线装置。22、一种包括指令的计算机可读媒体,所述指令在由一装置中的一处理器执行时运行以对所述装置中一装置资源的分配进行动态仲裁,所述计算机可读媒体包括接收指令,其用于自-请求分配所述装置资源的请求应用程序接收一请求;确定指令,其用于确定由一拥有应用程序拥有所述装置资源;关联指令,其用于将拥有者信息与请求者信息相关联以形成一仲裁请求,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息;仲裁指令,其用于对所述仲裁请求进行仲裁以产生一指示是否应将所述装置资源分配给所述请求应用程序的仲裁决定;及分配指令,其用于根据所述仲裁决定来分配所述装置资源。23、如权利要求22所述的计算机可读媒体,其中所述仲裁指令由一资源仲裁器实施,且其中所述方法包括用于将所述资源仲裁器下载至所述装置的指令。24、如权利要求22所述的计算机可读媒体,其中所述拥有者信息包括所述拥有应用程序的一特权状态且所述仲裁指令包括用于根据所述拥有应用程序的所述特权状态来确定所述仲裁决定的指令。25、如权利要求22所述的计算机可读媒体,其中所述拥有者信息包括一让与列表且所述仲裁指令包括用于根据所述让与列表来确定所述仲裁决定的指令。26、如权利要求25所述的计算机可读媒体,其中所述请求者信息包括一请求者标识符且所述仲裁指令包括用于确定所述仲裁决定以便如果所述请求者标识符包含于所述让与列表中则将所述装置资源分配给所述请求应用程序的指令。27、如权利要求22所述的计算机可读媒体,其中所述仲裁指令包括用于根据选自包括如下信息的一组信息项中的任何信息来确定所述仲裁决定的指令所述拥有者信息,所述请求者信息,装置状态信息,装置运行模式信息,用户偏好信息,及第三方偏好信息。28、如权利要求22所述的计算机可读媒体,其中所述装置为一无线装置。全文摘要本发明揭示一种用于对一装置(300)上的一共享资源进行动态仲裁的系统。做为在所述装置(300)上执行的应用程序(322、324、326),其向声音管理器(318)和照相机管理器(320)提交请求以访问相关的装置资源。所述请求经处理以将每一声音资源(306)和照相机资源(308)分配给所选择的应用程序。在一装置资源目前未被分配的情况下,该装置资源可以容易的分配给一请求应用程序。将拥有者信息与请求者信息相关联以形成一仲裁请求,其中所述拥有者信息包括关于所述拥有应用程序的信息且所述请求者信息包括关于所述请求应用程序的信息。文档编号G06F15/173GK101189597SQ200580022493公开日2008年5月28日申请日期2005年5月26日优先权日2004年5月26日发明者布赖恩·哈罗德·凯利,斯里尼瓦斯·帕特瓦里,肯尼斯·M·盖布申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1