处理计算设备中的消息的制作方法

文档序号:6594044阅读:96来源:国知局
专利名称:处理计算设备中的消息的制作方法
技术领域
本申请涉及处理计算设备中的消息,并具体而言涉及与数据处理操作有关的消 肩、O
背景技术
当计算设备需要执行用于用户的任务时,指令在计算设备内部传送,以便启动设 备内适当的处理单元来执行任务。体系结构的模式是已知的,其将系统任务划分为若干较 小的处理步骤,该处理步骤由通过所述步骤流动的数据相连接。所述模式被称为“管道和过 滤器”模式每个“过滤器”实现一个处理步骤,并且“管道”通过使得数据能够在步骤之间 流动而连接所述步骤。在图1中提供根据管道和过滤器模式表示的任务的示例。图1示出 了关联于文本数据文件的多个处理步骤。用于表示数据处理操作的另一结构在由Khronos Group开发的OpenMAX IL标 准1.1. 1中进行了例示。该标准定义了用于多媒体应用的应用编程接口(API),其使得软 件开发者能够使用编解码器、库以及其它功能来处理视频、音频、语音、以及静态图像数据。 OpenMAX标准包括将“组件”定义为独立数据操作器。每个组件是功能块,其可以是数据源、 数据宿(data sink)、编解码器、过滤器、分路器、合路器、或任意其它类型的操作器,并且每 个组件可以是硬件、软件、处理器、或这些的结合。将针对特定用途情形进行处理的数据被 顺序地传送通过一系列组件,以便获得理想结果。在现有计算设备中,提供特定数据处理需求的通常方式是通过识别一系列期望 使用案例,编写用于实现与每个独立使用案例关联的所需数据处理步骤的定制软件、以及 将该软件以这样的方式存储在计算设备上,所述方式即当在计算设备中检测到相应的使用 案例时所述软件可以被使用。术语“硬编码”可以被用于指代意在处理特定的预想使用案 例的永久存储的计算机程序的这些实例。例如,在涉及音频数据处理的具体使用案例中,以 下可以是必要的(i)从计算系统上的文件中检索MP3格式的音频数据,(ii)根据MP3编解 码器解码已存储的音频数据,以及(iii)向设备上的扬声器提供已解码数据,用于向用户 播放声音。该示例在图2中借助于表示不同组件的一系列块示出。在图2中,数据存储介 质1包含MP3音频文件2。文件在组件3中被识别为一系列数据处理组件内的数据源。文 件从其在存储装置1中的位置被读取,并接着被传送到编解码器4,编解码器4在MP3数据 被传递到数据宿5 (其在本示例中是扬声器6)之前解码MP3数据。组件3-5以及它们之间 的关系被预先定义和存储,从而它们每当将在计算设备上播放MP3文件时可用于被调用。

发明内容
根据本发明的第一示例,提供了一种用于在计算设备中处理与数据处理操作有关 的消息的方法,所述方法包括在调度实体处从客户端过程接收消息;响应于接收到所述 消息,从在所述调度实体外部的实体检索规定所述消息将如何被处理的数据;以及响应于 检索所述数据,通过从所述调度实体向所述计算设备的一个或多个选择的组件发送进一步的消息,使得所述计算设备的一个或多个选择的组件执行在所述消息中指示的数据处理操作。规定所述消息将如何被处理的数据可以规定控制操作,其可以涉及例如用以执 行数据处理操作的组件的选择、建立、绑定、状态改变、或时间安排。为了执行在消息中规定 的数据处理操作,可以是以下情形,即,独立的组件各自执行其自身对应的数据处理操作, 所述自身对应的数据处理操作分摊整体的数据处理操作。根据此示例,例如如下所述的,选择的组件可以被分组为流或流容器。检索规定所述消息将如何被处理的数据可以在运行时被执行,从而对于所述消息 将如何被处理的确定是响应于在所述调度实体处接收到所述消息而被动态做出的。这可以 提供在计算设备对消息进行响应的能力方面的灵活性,因为所述响应不需要被硬编码在计 算设备中。检索数据可以包括从数据库检索预定义的方案,所述方案对应于在所述调度实 体处接收到的所述消息。这可以允许在处理消息时较低的处理开销和相对快的响应,因为 在此示例中调度实体接收关于如何处理来自客户端过程的消息的特定指令。所述方案可以规定哪些组件将被用于所述消息的处理。此外,所述方案可以附加 地规定与将在消息的处理中使用的组件有关的时间安排考虑,诸如,所述进一步的消息将 被从所述调度实体向所述组件发送的顺序。这可以协助数据处理操作的高效执行,因为其 可以确保消息不会在组件准备好对消息进行响应之前被发送到组件。所述时间安排考虑可以至少部分地基于所述组件之间的硬件或软件依赖关系,或 者在所述计算设备内的主要状况,或者在设备内的硬件单元的物理位置等等。这可以确保 当一个组件针对其操作依赖于另一组件的硬件或软件时,当通过从所述调度实体发送的消 息执行数据处理操作时考虑到该依赖性。设备中的主要情形可以包括以下因素,诸如,硬件 或软件特征可用,或者某些硬件或软件特征的当前状态。当不存在对应于在所述调度实体处接收的消息的预定义方案时,检索数据可以包 括检索一个或多个规则,其中规则可以对应于不止一个消息,并且规定给定类型的消息将 如何被处理。根据本发明的第二示例,提供了一种用于在计算设备中处理与数据处理操作有关 的消息的调度实体,所述调度实体被安置为执行从客户端过程接收消息;响应于接收到 所述消息,从在所述调度实体外部的实体检索规定所述消息将如何被处理的数据;以及响 应于检索所述数据,通过向所述计算设备的一个或多个选择的组件发送进一步的消息,使 得所述计算设备的一个或多个选择的组件执行在所述消息中指示的数据处理操作。所述调度实体可以被提供作为软件产品,或作为软件产品的一部分,或者其可以 被整体或部分地用硬件实现。根据本发明的第三示例,提供了一种包括第二示例的调度实体的装置。根据本发明的第四示例,提供了一种包括第二示例的调度实体的操作系统。根据本发明的第五示例,提供了一种被配置用于执行第一示例的方法的计算机程序。本发明的示例还提供了存储用于执行第一示例的方法的计算机程序的计算机可 读介质和计算机程序产品。


现在将借助示例参考附图描述本发明,在附图中图1是根据现有技术的管道和过滤器模式的数据处理序列的表示;图2是在多媒体操作的上下文中的数据处理序列的表示;图3示出了现有技术的计算设备的示例,其提供了用于本发明的操作的适当环 境;图4是在示例性计算设备中的命令传播与执行的示意性表示;以及图5示出了根据本发明实施例的过程的概要。
具体实施例方式许多现代电子设备使用操作系统。现代操作系统可以在由集成电路组成的任意装 置上找到,例如,个人计算机、因特网服务器、蜂窝式电话、音乐播放器、路由器、交换机、无 线接入点、网络存储装置、游戏控制台、数字照相机、DVD播放器、缝纫机、以及望远镜。在示 例实施例中,可以是软件的操作系统管理设备的资源的共享,向编程人员提供访问这些资 源的接口。操作系统处理系统数据和用户输入,并且通过将任务和内部系统资源作为服务 分配到系统上的用户和程序并且进行管理而进行响应。在其最基本的方面,操作系统执行 下述任务,诸如控制和分配存储器,对系统请求排列优先次序,控制输入和输出设备,使连 网便利,以及管理文件。操作系统本质上是一种接口,通过该接口,较高级应用可以访问设 备的硬件。图3示出了可以受益于本发明的教导的设备的示例智能电话10,其包括执行电 话功能的硬件、以及使得电话能够具有智能电话期望的其它功能(诸如消息传送、日历、字 处理功能等等)的应用处理器和对应的支持硬件。在图3中,电话硬件由RF处理器102表 示,其向天线1 提供RF信号,用于传送电话信号,以及从天线1 接收电话信号。此外还 提供的是基带处理器104,其向RF处理器102提供信号以及从RF处理器102接收信号。如 本领域内公知的,基带处理器104还与订户身份模块106交互。典型地,还提供的是显示器116、小键盘118。它们由应用处理器108来控制。应用 处理器108可以是从基带处理器104和RF处理器102分开的集成电路。不过,可以预期, 单芯片解决方案将是可用的。功率和音频控制器120被提供,以便从电池向电话子系统、应 用处理器和其它硬件供电。此外,功率和音频控制器120还控制来自麦克风122的输入,以 及经由扬声器124的音频输出。为了应用处理器108的操作,通常提供多种不同类型的存储器。首先,可以向应用 处理器108提供可以随意写入和读取数据和程序代码的某种随机存取存储器(RAM) 112。位 于RAM中任意位置的代码可以由应用处理器108从RAM中执行。此外,通常提供的是分开的用户存储器110,其被用于存储用户数据,诸如用户应 用程序(典型地为确定设备功能的较高层的应用程序)以及用户数据文件等等。如前所述,为了应用处理器108的操作,需要操作系统,当智能电话系统10被首先 开启的时候所述操作系统必须启动。操作系统代码通常被存储在只读存储器中,并且在现 代设备中,只读存储器通常是NAND闪速ROM 114。ROM将存储必要的操作系统组件,以便设备10进行操作,但是其它软件程序也可以被存储,诸如应用程序等,并且具体而言,存储的 是对于设备强制性的那些应用程序,诸如,在智能电话的情形中为通信应用等。这些应用程 序典型地将是当电话被首次售出时由设备制造商与智能电话绑定的应用。由用户添加到智 能电话的其它应用通常将被存储在用户存储器110中。在任意计算设备(诸如图3中所示的智能电话10)中,数据处理操作可以被分解 为组件,如以上关于图2所讨论的。在下文讨论中,出于简明目的,现在将提供多种定义,用 于解释在描述某些示例实施例时使用的术语。在示例实施例中,组件是数据处理系统中的原子实体,如以上给出的OpenMax IL 定义中的组件。示例是数据源、数据宿、编解码器、以及处理效果。组件通常用于执行数据 处理操作,包括但不限于下述操作,诸如从存储位置读取数据,或者根据特定编解码器编 码数据。流是组件链,其以特定顺序被集合在一起,用于表示应用使用案例所需的特定数 据处理操作。示例性流在图2中示出,其表示从存储位置1检索数据并转换该数据以便通 过扬声器6进行播放的使用案例。流容器是流的集合,其对由应用定义的复杂使用案例进行建模。示例是,例如通过 MP4文件同时播放音频和视频数据。一个流可以被用于对于音频轨道的解码和播放进行建 模,并且一个分开的流可以被用于对于视频轨道的解码和播放进行建模。组件、流和流容器是在Symbian 操作系统的多媒体体系结构中使用的结构。在 此上下文中使用的另一术语是“图”。图是任意一组组件、流或流容器的表示,其可选地包括 定义图中的不同单元和/或详细指示单元之间的关系的信息。所述关系的示例有主要-从 属、发送者-接收者、以及客户端-供应商。本领域技术人员将会理解,尽管在Symbian 操作系统的上下文中给出了以下详细描述,但是本发明的一般性概念适用于任意计算环
^Ml O在本发明的上下文中,术语“消息”被用于指代在计算设备的软件或硬件单元之间 传送的任意信号或指令,其涉及数据处理操作。消息通常是对于在设备上运行的过程或应 用需要特定操作的指示,或者是对于数据处理操作的细节的指示,或者是涉及数据处理操 作的通知。“调度实体”是在计算设备中的实体,其接收指示出需要特定数据处理操作的消 息,以及将消息传送到设备的适当单元,以便使得数据处理操作能够发生。消息首先从请求 客户端过程被发送。(术语“客户端”在此不一定在客户端-服务器体系结构的意义上使 用,而是更通用地在需要来自计算设备中的另一实体的服务的应用的意义上使用)。现在将参考图4描述本发明的实施例,其中调度实体40被安置为接收源于计算设 备内的客户端过程或应用的消息,所述消息指示出数据处理操作被请求。在此实施例中,调 度实体由设备内的多媒体子系统创建,并且其被安置为处理与多媒体有关的消息。调度实体40表示一种一般性实体,其自身可以被看成是流容器、流、或容器。其通 过搜寻关于如何处理消息的输入而对消息接收进行响应。特别地,在此实施例中,调度实体 查询预定义的调度方案的数据结构,以确定如何处理消息。数据结构在示例实施例中指代 决策引擎,并且其可以被实现为例如数据库。在示例实施例中,调度方案有效地是一组指 令,该指令定义了需要什么来执行在给定消息中指示的数据处理操作。例如,“播放音频”消 息可以创建如图2中所示的流,以便包括以下组件
-数据源-编解码器-数据宿。在此实施例中,组件的组连同它们的顺序(即,流)将在关联于音频播放请求的调 度方案中指示。此外,时间安排考虑可以被包括在调度方案中,以便考虑到下述因素,诸如 硬件或软件实体的固有等待时间。调度方案还可以基于对组件及其依赖关系的知识而指定 下述顺序,其中组件应该被最优地创建、初始化、以及被命令来执行操作。例如,如果一个组 件定义了共享存储器中的缓冲器,并且第二组件使用对该缓冲器的定义,则定义缓冲器的 第一组件应该在使用缓冲器的第二组件之前被创建。所述关系在调度方案中定义,以便用 于正确协调组件。对调度方案的预定义可以被自动化,或部分地自动化,从而一组规则可以 被用于构建针对给定事件的调度方案。可替换地,或者附加地,调度方案可以由具有对所述 方案将应用到的计算环境的知识的程序员手动编写。在上述实施例中,决策引擎中的每个调度方案与一个或多个消息相关联。以此方 式,当调度实体接收到消息时,其可以查询决策引擎,以找到对应于该消息的调度方案。响 应于获得适当的调度方案(或者当存在多于一个调度方案时,适当的调度方案之一),调度 实体创建用于处理在消息中识别的数据处理操作的指定实体。在图4所示的示例中,消息 已经被接收,其需要构建组件A、B和以45)。如果任意时间安排情形可以影响创建这三个 组件所需的时间,则构建组件的顺序可以在相关的调度方案中规定。例如,如果已知创建组 件B需要很长时间,则其可以对于首先创建组件B是有意义的,从而当其它组件正被创建的 同时对组件B的创建一直在后台运行。以类似方式,当调度实体使得每个组件进行初始化 时,时间安排考虑被重视。在初始化之后,在此实施例中的组件(在图4中示出为4 能够接收和执行来自 调度实体的控制命令。图4示出了控制命令X (41),其涉及在消息中指定的特定数据处理操 作的执行。该命令包括将进行操作的数据的细节和/或数据在存储器中的位置,以及将执 行的处理操作。在已经查询决策引擎和创建和初始化组件A-C之后,调度实体40已经从数据库获 得关于顺序和时间安排的信息43,根据所述信息43,组件应该被命令执行其各自的数据处 理任务。时间安排可以受到每个组件执行其任务所期望的将耗费的时间长度的影响。例如, 一个组件可以表示已知要花费确时间安排间长度进行响应的硬件芯片。在此情形中,在执 行其任务的顺序中,直到该芯片已经具有时间响应之前,都将不会出现命令序列中的下一 个组件的点,于是可以将延迟时间构建到调度实体对多种组件的命令中。传播方案43由调度实体从决策引擎检索,用于指示控制命令被传播到组件A-C的 顺序。该顺序由图4中示为X1-X3的虚线来表示。命令X1-X3可以使得相应组件改变其 状态,例如,从空闲至活动,其中在活动状态中,组件执行相关操作。一旦接收到命令,则在 本实施例中的每个组件A-C将执行其自身特定的任务,从而当命令已被传播到所有相关组 件,并且所有相关组件已经对它们的命令做出行动的时候,整个处理操作完成。以类似方 式,实线Y1-Y3指示这样的顺序,即在已经查询数据库以及检索关联于控制命令Y的传播方 案G4)之后,调度实体指示组件A-C响应于控制命令^4 而执行任务所按照的顺序。在本实施例中,已知为很可能在图4的计算设备中出现的消息被关联于决策引擎中的对应调度方案。不过,不必将所有可能的消息都映射到决策引擎中预定义的调度实体 上;而是,响应于在调度实体处接收到消息,调度实体可以被动态生成。可以预定义规则来 确定消息如何由调度实体处理,例如,以便确保当具有不同时间安排特性的多个组件被用 于执行特定任务时,将考虑组件之间的预定义的时间安排关系以便避免不必要的延迟,或 者确保当需要某个功能时(比如,根据特定编解码器对数据流进行编码或解码),预定义的 组件将被用于执行该功能。不论何时在调度实体处接收消息,这些规则都可以被查询,其中 针对所述消息,数据库没有包含指定该消息应该如何被处理的预定义的调度方案。在没有预定义调度实体情况下的消息的所述动态处理可以允许在可由计算设备 实现的功能上的极大灵活性,因为不论何时新硬件或软件功能对于计算设备是可用时,都 可以添加新规则。在上述相对于图4所述的实施例中,由三个组件(A-C)组件的流借助于调度实体 被创建,并且被用于执行在两个命令X和Y中识别的任务。命令在功能上是彼此相关的,因 此它们用于相同的组件。比如,命令X可以表示涉及音乐轨道的播放操作,而命令Y表示暂 停操作。应该注意,在更复杂的数据处理情形中,流容器可以是适当的,从而使能多个流的 创建。一般而言,较大实体将在较小实体之前被创建。由此,流容器通常将被首先创建,并 且接着其包含的流被创建,接着是组成流的组件被创建。诸如所述情形的更复杂的情形可 以使得从调度方案的决策引擎检索到不止一个调度方案成为必要,或者使得预定义的调度 方案与所使用的动态创建的方案的结合成为必要。图4的示例实施例的过程的概要在图5中示出。在框50,在调度实体处接收消息。 数据接着被检索,该数据指定消息将如何被处理(框51)。在框52,从调度实体向选定组件 发送各种消息,并且在框53,组件根据从调度实体发送的消息执行数据处理操作。通过如关于示例实施例描述的那样在运行时提供将处理的消息,可以在计算设备 中实现相当的灵活性。除了前述优势之外,该新功能还可以被引入对消息的处理,还有可能 提供规则使得预定义的调度方案在运行时被覆盖。响应于计算设备内的状况,被覆盖的方 案可以被新的已定义的调度方案所替换,或者它们可以被将在运行时遵循的一组其它规则 所替换以使得调度方案能够被动态创建。因此,例如,电量低的状况可以被检测到,使得针 对特定操作的默认调度方案被替换处理过程所覆盖,所述替换处理过程考虑到可用于计算 设备的降低的电量。一般而言,通过提供用于接收和传播与多个不同的处理操作有关的消 息的调度实体,引入了如何可以在运行时处理消息的多种可能性。通过使用用于确定如何 处理某些类型的请求的预定义的规则,可以处理意外的使用案例。同样,通过提供用于处理 在调度实体外部的实体(诸如数据库)中的消息的调度方案和/或规则,对于消息处理过 程的增加或修改可以被相对容易地做出,而无需重写调度实体。本发明实施例的另外的优势在于,它们可以提供用于错误处理的便利机制。如果 组件在执行被分配给其的任意任务时遇到错误,则其可以向调度实体通知该错误。调度实 体接着可以采取适当动作,所述动作可以包括在流中将该错误广播给其它组件,将该错误 逐步升级到流容器,将该错误逐步升级到计算设备中的管理软件,和/或通知客户端过程。本发明的实施例可以避免针对特定数据处理使用案例的硬编码解决方案(使得 它们可能是不灵活的,并且无法可靠地用于处理之前未知或未预见到的使用案例)的某些 缺点。例如,如果一组预定义的解决方案独立于它们将最终被用于的硬件进行编写,则这些解决方案可能无法使用可用硬件的全部性能。如果一组通用的预定义解决方案被编写,比 如以便在一系列不同的移动电话硬件平台上运行,则具有例如加重低音模式(用于高质量 音频播出)的高规格的移动电话可能无法尽其最大可能限度被使用,因为通用解决方案没 有假设加重低音模式的存在。同样地,如果在计算设备已经被构建之后对驻留于计算设备 上的硬件或软件进行升级,则预定义的数据处理解决方案可能无法完全使用设备已升级的 性能,因为它们被编写为将在不具有该已升级性能的设备上实现。此外,一组解决方案通常 必须是对于将在其上运行数据处理操作的硬件平台专用的。因此,以下可能是不可能的在 基本不用重写所述解决方案以适应特定硬件项(例如,不同的处理器或不同的扬声器)的 情况下,将所述解决方案转移到另一硬件平台。针对数据处理使用案例的硬编码解决方案的另一缺点在于,硬编码的程序必须被 永久存储在计算设备上,从而消耗有价值的存储器性能,以及由于在可能需要解决方案的 情形中解决方案的预空加载的原因,潜在地使设备变慢。例如,当音频播放器应用在移动电 话上启动时,与音频播放有关的数据处理解决方案可以与应用一起被加载,从而它们当需 要时立即可用,并且这可以增加启动应用所耗费的时间。本发明实施例可以用软件、硬件、或软件和硬件的结合来实现。本领域技术人员将理解,可替换的实现方式是可能的,并且上述方法和实现方式 的多种修改可以在由所附权利要求限定的本发明范围内做出。
权利要求
1.一种用于在计算设备中处理与数据处理操作有关的消息的方法,所述方法包括在调度实体处从客户端过程接收消息;响应于接收到所述消息,从在所述调度实体外部的实体检索规定所述消息将如何被处 理的数据;以及响应于检索所述数据,通过从所述调度实体向所述计算设备的一个或多个选择的组件 发送进一步的消息,使得所述计算设备的一个或多个选择的组件执行在所述消息中指示的 数据处理操作。
2.根据权利要求1所述的方法,其中检索规定所述消息将如何被处理的数据是在运行 时被执行的,从而对于所述消息将如何被处理的确定是响应于在所述调度实体处接收到所 述消息而被动态做出的。
3.根据权利要求1或权利要求2所述的方法,其中检索数据包括从数据结构检索预 定义的方案,所述方案对应于在所述调度实体处接收到的所述消息。
4.根据权利要求3所述的方法,其中所述方案规定哪些组件将被用于所述消息的处理。
5.根据权利要求4所述的方法,其中所述方案附加地规定与将在所述消息的处理中使 用的组件有关的时间安排考虑,诸如,所述进一步的消息将被从所述调度实体向所述组件 发送的顺序。
6.根据权利要求5所述的方法,其中所述时间安排考虑至少部分地基于所述组件之间 的硬件或软件依赖关系。
7.根据权利要求5或权利要求6所述的方法,其中所述时间安排考虑至少部分地基于 在所述计算设备内的主要状况。
8.根据权利要求1或权利要求2所述的方法,其中不存在与在所述调度实体处接收的 消息对应的预定义方案,并且检索数据包括检索一个或多个规则,其中至少一个规则对应 于多于一个的消息并且规定给定类型的消息将如何被处理。
9.一种用于在计算设备中处理与数据处理操作有关的消息的调度实体,所述调度实体 被安置为执行从客户端过程接收消息;响应于接收到所述消息,从在所述调度实体外部的实体检索规定所述消息将如何被处 理的数据;以及响应于检索所述数据,通过向所述计算设备的一个或多个选择的组件发送进一步的消 息,使得所述计算设备的一个或多个选择的组件执行在所述消息中指示的数据处理操作。
10.一种包括根据权利要求9所述的调度实体的装置。
11.一种包括根据权利要求9所述的调度实体的操作系统。
12.一种被安置用于执行根据权利要求1所述的方法的计算机程序。
全文摘要
一种用于动态确定在计算设备中将如何处理数据处理请求的方法。一旦在中央调度实体处接收到消息,调度实体就从数据库检索指定所述消息将如何被处理的信息,并且响应于此,其向计算设备内的选择的组件发布命令,以使得数据处理操作被执行。
文档编号G06F9/48GK102077169SQ200980124308
公开日2011年5月25日 申请日期2009年6月24日 优先权日2008年6月25日
发明者F·洛多洛 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1