首页> 中国专利> 选择计算装置中插件程序代码模块的方法

选择计算装置中插件程序代码模块的方法

摘要

本发明公开了一种通过计算装置上的应用程序执行的插件程序,如果与先前的插件程序相比该插件程序能够更好地与由应用程序指定的标准相匹配,则通过配置服务器来循环整个可用的插件程序,连续地询问每一个来选择插件程序。然后,将通过应用程序来执行与标准最匹配的插件程序。

著录项

  • 公开/公告号CN1969257A

    专利类型发明专利

  • 公开/公告日2007-05-23

    原文格式PDF

  • 申请/专利权人 西姆毕恩软件有限公司;

    申请/专利号CN200580019155.9

  • 发明设计人 卡尔·麦克道尔;

    申请日2005-06-08

  • 分类号G06F9/445(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚;尚志峰

  • 地址 英国伦敦

  • 入库时间 2023-12-17 18:42:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-16

    未缴年费专利权终止 IPC(主分类):G06F 9/445 专利号:ZL2005800191559 申请日:20050608 授权公告日:20091118

    专利权的终止

  • 2016-02-10

    专利权的转移 IPC(主分类):G06F9/445 登记生效日:20160118 变更前: 变更后: 申请日:20050608

    专利申请权、专利权的转移

  • 2010-10-20

    专利权的转移 IPC(主分类):G06F9/445 变更前: 变更后: 登记生效日:20100906 申请日:20050608

    专利申请权、专利权的转移

  • 2009-11-18

    授权

    授权

  • 2007-07-25

    实质审查的生效

    实质审查的生效

  • 2007-05-23

    公开

    公开

查看全部

说明书

技术领域

本发明涉及一种操作计算装置的方法,并且更具体地,涉及一种操作这种装置,使得该装置能够解决在大量插件程序之外的插件程序与通过装置上的请求的应用程序指定的属性最佳匹配的方法。

背景技术

本文中所使用的术语计算装置应广义理解为覆盖任何形式的计算装置,并且包括:任何形式因素的数据记录装置、任何类型或形式的计算机(包括手持和个人计算机)、以及任何形式因素的通信装置(包括移动电话、智能电话、集通信、图像记录和/或重放、以及计算功能于一体的通信装置、以及其他形式的无线和有线信息装置)。

可将插件程序定义为可执行代码的可替换项,其为可在运行时间加载或调用插件程序的松散耦合(loosely coupled)应用程序提供特定的业务。插件程序经常作为动态链接库(DLL)或者相似类型的模块来加载,该插件程序在与调用它们的应用程序相同的进程空间内执行,尽管它们也可以被作为单独的进程派生并运行。

在很多操作系统中广泛地使用插件程序,并且插件程序也由很多应用程序广泛使用。这种技术的主要优点在于:

·可使用插件程序的应用程序是固有可扩展的,这是因为当需要新特征时可以添加或替换插件程序;

·仅在请求时由应用程序加载插件程序代码,可使程序对存储器的需求更小并且更快的开始运行。

通过将插件程序普遍地结合到诸如Microsoft Internet Explorer和Netscape网络浏览器中,这种技术被计算装置的广大用户所熟悉,该技术是美国专利申请第5,838,906号的主题(众所周知的Eolas专利)。与作为浏览器内部运行Java小程序的基础一样,使用插件程序的最普通表现在于浏览器根据该插件程序提供某些类型的内容。尤其广泛地使用与多媒体文件相关的插件程序。

由于插件程序被定义为与调用它们的应用程序本质上独立,因此需要所有使用插件程序技术的系统提供一些机制,通过该机制应用程序识别到可用的插件程序,并且建议用于应用程序加载或调用它们的方法。

早期的机制(例如,完全根据Microsoft的OLE技术通过WindowsTM应用程序所使用的机制)需要到插件程序名称和位置的硬编码链接。因为其只允许替换插件程序,并且要求更新主应用程序以允许添加额外的插件程序组件,因此这被认为是令人不满意的。

后来的机制将插件程序的名称和位置存储到注册表或者插件程序数据库中;因为注册表或者插件程序数据库是灵活且可扩展的,所以认为其更优于名称的硬编码。为了使灵活度最大化并且使相同的插件程序能够用于不同的应用程序,这种注册表或数据库典型地是全系统的而不是专用的。因此,因此其对于在应用程序和提供公共业务的插件程序之间提供的一个或多个中间层公用的,包括:

·适用于应用程序的注册的插件程序的位置

·确定将调用潜在的插件程序备选项中的哪个插入程序

·实例化代表应用程序的插件程序

Microsoft’s Component Object Model(COM)是执行该技术的一种众所周知的方法,借此,操作系统在注册表中提供中间层,该中间层定位插件程序模块,处理实例化,然后将调用从应用程序重定向到插件程序实例。开发COM,使得软件制造者可以将新的辅助程序插入到现存的应用程序中,而无需重建现存的应用程序。因此,应将COM组件设计为可互换的插件程序,无论COM组件是本地进程内DLL还是远程服务器可执行的。

申请人为Sun Microsystems的WO 00/67114描述了“A Systemand Method for discovering and binding a program object”,其中,中间层使用注册表来发现并实例化插件程序,然后将对实例的引用返回到应用程序,以使应用程序可以和插件程序直接通信。

这些全系统机构通常与较少的类属中间层相结合,该中间层例如应用程序特定的插件程序管理器,或者允许插件程序用于服务多个同步应用程序的特定服务器。

当前技术的一个关注点在于在具有大量的插入程序作为备选项的情况下,对于哪个插入程序是最合适的选择可以是一种高级技术进程,其需要潜在复杂决策智能或算法,以达到最佳的选择。

基于中间层做出这种决策的任意方法将要求它保存可能的复杂状态信息,并且作为特定信息的一部分。根据中间层的类属,由于包含所有类型的现有插件程序的例行程序,所以可能导致不必要的臃肿代码(bloated code)。在结构上,这与类属业务层的任务冲突,该业务层将限定其自身来提供公共业务,例如定位和实例化插件程序。因此,所有类型的中间层可能证实不适于处理新类型的插件程序,该插件程序将不会在写入中间层的时候被识别。

示出这些关注点的一个特定情况为在诸如移动电话的无线信息装置上实现基于位置的服务(LBS)。LBS包括基于位置的信息、位置敏感计费、以及位置跟踪。所有这些特征均以能够告知其位置(定位)的移动电话为依据。然而,具有很多不同的用于获取位置信息的方法。被普遍认可的系统使用全球定位系统(GPS)。其中也使用可选的技术,它们中的一些是基于网络的,例如,单元的三角测量(cell triangulation)。还应该了解,将来,用于获得定位信息的可用方法将得到扩展,例如,最终欧洲伽利略计划将提供代替GPS的方法。

本领域技术人员应该认识到,用于执行LBS的插件程序的设计允许应用程序使用获得定位信息的任何方法,该设计将非常合适,并将提供显著的好处。这是因为:

·所有上述定位技术均提供相同的信息类型

·它们全部可以被写入,以与相同的应用程序编程接口(API)完全一致

·通常,应用程序将只需要使用它们中的一个。

然而,用于获得位置的上述技术具有显著的不同特性,例如,精确度、所需电能、用户的成本、以及获得定位位置所需的时间。因此,选择调用哪一个是根据大量因素的综合考虑。调用插件程序的中间层将不能考虑到全部这些方面。在最差的情况下,不能对如何获得定位信息做出切合实际的决策将导致使用简单的“最后位置”机制,其中实例化与适当的API一致的最近安装的匹配插件程序。

因此,很明显,通常不存在自动地确定在装置具有多个可用的插件程序的情况下将使用哪种插件程序的灵活且可扩展的方式,其中,每个插件程序均可执行特定的任务,但是,通过完全不同的方式使其有利于为特定环境选择特定插件程序。

发明内容

因此,本发明的一个目的在于提供一种用于选择计算装置中的插件程序的改进方法。

根据本发明的第一方面,提供了一种用于使在计算装置上运行的软件应用程序能够使执行代码模块组中的最适合的代码模块被执行的方法,该方法包括:

a)识别最适合代码模块将拥有的特性或属性;

b)直接或者通过一个或多个中间层,将特性或属性传送到每个可能的功能兼容代码模块;

c)将代码模块的每一个用于执行它们与特性或属性一致程度的确定性计算,并将结果作为数值分数返回到软件应用程序或中间层;以及

d)由软件应用程序直接或者通过中间层执行的实例化,来执行具有最佳分数的模块。

根据本发明的第二方面,提供了一种被配置为根据第一方面的方法来操作的计算装置。

根据本发明的第三方面,提供了一种用于使根据第二方面的计算装置以根据第一方面的方法操作的操作系统。

具体实施方式

自从1997年首次发布起,由伦敦的Symbian Software Ltd提出的用于移动电话的Symbian OSTM操作系统广泛使用插件程序。这些插件程序传统上以由上述类型的中间层加载的多形态DLL为基础,提出递增的数值,以作为可在其各自的进程空间中运行的可执行程序来实现。本发明可应用于任意一种类型的插件程序。

这里描述的发明描述了如何解决上述LBS文中的问题,本领域技术人员应当理解,依据本发明的原理同样可应用于在可能的插件程序之间需要做出选择的任意情况。因此,LBS的情况仅被用于示例性的目的,且不应被解释为在另一方面限定了本发明的范围或适应性。另外,如文中所述的Symbian OSTM操作系统也仅用于示例性的目的,且也不应被解释为限定了本发明在相关于其他操作系统的范围或适应性,对于本领域技术人员而言,这是显而易见的。

在Symbian OSTM操作系统中基于位置的服务的定位子系统采用客户端/服务器构架结构,以允许多个客户端(应用程序)检索来自多个位置技术的装置位置的周期更新。

该结构包括单个位置服务器,作为独立技术,其通过提供适用于较早描述的任意方法的独立技术提取层的一致应用程序接口(API)来访问。

服务器管理对于位置技术指定模块的访问。作为插件程序执行该模块,其可被动态地添加到操作系统,或者从操作系统中动态地去除,并且其通过位置服务器来检测并使用,而客户应用程序无需识别该模块。

当客户端连接到本地服务器时,其可以提供标准对象以指定使用本地技术理想的或所需的属性。在提取API中指定这些标准对象,并允许指定服务质量参数(例如,水平精度、垂直精度、或者第一位置的时间(time to first fix))。也可以指定应用程序潜在利益的其他参数,例如,成本和功耗。

通过本发明,如果与先前的插件程序相比可用的插件程序能够更好地与由客户端指定的标准相匹配,则位置服务器循环整个可用的插件程序,连续地询问每一个。位置服务器本身不知道如何确定从插件程序到插件程序执行的“更好/更坏”。

在该应用程序中描述的方法以每个插件程序为基础,该插件程序能够执行对于反应了插件程序与指定的QoS标准匹配程度的分数的确定性计算。计算使用属性的当前值,例如,“下一位置的时间(time to next fix)”,其将被每个插件程序识别。计算是确定性的,并且每个插件程序都遵循相同的规则,来确保总是得到公平的且正确的决策。可能还有很多不同的最终选择算法或方法,例如:

1.服务器组件询问每个插件程序,并保持插件程序返回最高(即,最合适)分数的轨迹,并且一次性询问所有插件程序,选择具有最高分数的插件程序。

2.服务器组件依次询问每个插件程序,将此范围内的最高分数传送到每个插件程序中。如果插件程序的分数不能“优于”最高分数,则不再考虑它;如果它优于最高分数,则它通知服务器现在它是最高分数。

这些方法的第一种需要服务器组件做出的一些受限制的决策。第二种是对做出的决策进行真实转移,使得服务器根本不能被调用。然而,本发明不限于这两种方法,并且将可以适用于本领域技术人员设计的任意算法。

本发明以当计算它们分数(即,遵从确定性计算的公开规则)时正确执行的插件程序为依据。这里不认为所涉及的原则存在不足,并且不会增加额外风险,这是因为在所有情况下,应用程序都不得不信任其调用的插件程序将非常合适。但是,如果应用程序决定将不再完全盲目地信任插件程序,则仍然可能检测在适当点(例如,当插件程序安装、检测、检验、或标注时)上每一插件程序的行为。可选地,应用程序将通过看门狗或其他机制,在运行时间,执行对插件程序行为的动态检测。

本发明被认为提供了下列示例性优点:

·其适用于所有结构,该结构中提供可比较业务的多个插件程序可用于应用程序。

·其去除了在应用程序和操作系统插件程序结构的全部中间层中所需的潜在复杂决策智能。

·其教导了如何能够将最优的选择插件程序的责任有效地转移到插件程序本身。

·通过避免在中间层和它们服务的插件程序模块之间引入不必要的依附关系,来实施好的设计。

本发明指定一种方法和装置,其能够确定在可用插件程序组之外的哪个插件程序对于由请求应用程序指定的期望属性组是最合适的。

询问插件程序组的每个成员,来执行对于它们与期望属性组一致程度的确定性计算,然后返回结果,作为数值分数。

其可以在用于控制设备的软件的任意其他部分中通过智能决策来选择最合适的模块,而无需外在的干涉。

尽管已经参照特定实施例描述了本发明,但是应当注意,在由所附权利要求限定的本发明的范围之内的更改是有效的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号