一种向软件应用程序动态地添加特征的方法、设备、系统和计算机程序产品。使用一个用于向任何应用程序添加任何特征的一般不可改变的应用编程接口(API)的框架,来添加这些应用程序。
【技术实现步骤摘要】
本专利技术涉及向设备添加软件应用程序特征。
技术介绍
允许终端制造商创造应用程序驱动的电话机的终端软件产品是可获得的。可从芬兰诺基亚公司获得的60系列平台是一种能够被终端制造商许可的终端软件产品的例子。期望使用终端软件产品制造电话机(或其它相似设备)的制造商将各种相关的应用程序包括到终端软件产品。制造商也能够包括已经由制造商定制的用户界面(UI)元件,以及添加新的应用程序或删除旧的应用程序。另外,购买这种电话机的用户可以在该电话机上安装第三方软件。典型地,应用程序为在预定义外壳应用程序中对于终端用户而言可见的一个特征提供功能。应用程序菜单以及其它用户界面元件、例如软键按扭或者选择列表提供了每一特征可用的多组选择或数据。然而,制造商、终端用户以及第三方开发商并不能按照对于无缝终端用户经历来说看起来象是集成的方式用他们自己的特征容易地扩展终端软件产品应用程序。特征特定的菜单项(或者其它用户界面元件)不能看起来和工作起来好像它们就是终端软件产品应用程序的一部分。按照惯例,在电话机中增加新的特征意味着增加新的应用程序,这通常将导致许多执行同类事务并且不一定彼此一致的应用程序。试图解决这些问题的现有尝试都已经失败了。例如,现有尝试包括为每个特征实现应用编程接口(API)。在这样的系统中,为每个特征指定一个API。向需要这些特征的客户端应用程序提供对对应于该特征的API的依赖性。向客户端添加特征特定的UI元件。另外,能够添加特征特定的UI元件。解决上述问题的另一尝试包括预先添加特征特定的UI元件以及使用该等元件的运行时间变体。这样的系统预先包含所有特征,并且取决于产品配置对特征进行激活/去激活。然而,这些技术通常导致了软件结构中的静态依赖性,会产生电话机开发程序中的集成问题。在任何软件开发(包括用于诸如上述那些终端软件产品之类的终端软件产品的编程)中,开发者创建软件结构,将需求映射到子系统和部件,并且定义对于所创建的结构的功能性及非功能性软件需求。这些结构的关键部件是应用编程接口(API),它表示被称为调用程度的另一部件经由其利用或者调用另一被称为被调用程序的部件的接口。为了向现有软件中添加一个功能,将一个新的部件通过被调用程序为其它方使用而提供的API集成到现有应用程序中。通常,API包括多组声明和定义,例如,常量声明、类型定义、类定义以及函数(过程)定义。每个函数定义有一个唯一的签名,它包括返回类型、函数名称以及函数变元列表。每个变元定义一段传递给函数或程序的数据。变元能够保持的数据类型可以是简单的,例如字符串、字节、整数、实数、双精度,或者可以是对结构或类定义的结构引用。在软件开发中需要有标准的多用途API,它们在软件演变中是保持不改变的和足够通用的。开发者想把采用简单数据类型的通用的多用途函数、例如Int genericDoSomething(const char[]objectInformation)实现到这样的API中。然而,实现能够接受多种参数的通用函数是困难的。该函数可以被分成具有独立变体的几段。例如,函数可以被定义如下1)Int genericDoSomething(const char[]objectName);2)Int genericDo Something(const char[]objectId);2B)Int genericDoSomethingByName(const char[]objectName);2C)Int genericDoSomethingById(const char[]objectId);3)Int genericDoSomething(const char[]objectName,const char[]objectUrl);4)Int genericDoSomething(const char[]objectName,const char[]objectID,char*objectUrl);5)Int genericDoSomething(const char[]objectName,char[]outObjectInfo);在所有这些版本中,被调用程序假定每个变元位置的含义或者语义。然而,该被调用程序必须信任调用程度,并且假定第一次输入的参数是正确的,被调用程序没有好的办法对之进行验证。上述选择1)和2)是不可能的,因为函数签名不是唯一的,并且编译器不能分辩函数调用。需要上述函数2B)和2C)来分辩函数调用。当被调用程序把一个输入参数传递到其它函数时,它向前传送这种信任。在许多层函数调用之后,语义可能丢失,并且有变元被误解的风险。如果向函数增加一个新的变元,则每次必须改变函数的签名。粗心的改变可能导致二进制或源兼容性破坏。例如,在上述3)和4)的情况中,增加了额外的objectID和objectUrl变元。在5)的情况中,如果被调用程序在输出变元outObjectInfo中返回数据,则调用程度将会面临和输入参数类似的问题。如果将输入变元持续地保存到一个文件中,则丢失变元的含义。如果将输入变元传递过进程边界,则丢失了变元的含义。如上所述,使用特定的函数变体代替通用形式是可能的。能够向变元、例如“Int genericDoSomething(int objectInfoMeaning,const char[]objectInformation)”中添加语义信息。这适用于在同一次调用中传递的每个额外的变元(例如,“Int genericDoSomething(intobjectInfoMeaning1,const char[]objectInformation1,intobjectInfoMeaning2,const char[]objectInformation2);”。能够对上述结构进行简化(例如,“Int genericDoSomething(struct ObjectInfo1 info,struct ObjectInfo2 info)”)。这里,“struct ObjectInfo1”结构把信息保持作为成员数据。在这样的结构中,编译器检查变元的语义。作为选择,能够使用类(例如,“Int genericDoSomething(ObjectInfo1 info,ObjectInfo2 info);”),其中Object1和Object2是自动保持语义信息的C++类。同样地,编译器检查变元的语义。然而,需要以类似的方式添加新的变元。另外,能够将genericDoSomething方法作为一个成员函数添加到Object1类中,以便获得object1.genericDo Something(Object2 &info)。另一种已知技术(例如在Microsoft OLE2中)是使用能够保持几种数据表示的变体数据类型(参见下一部分)。但是这些已知技术仍然缺少语义信息。为了通过相同的使用者(consumer)API把参数从一个使用者传递到一个或多个匹配的提供者,可以创建一个带有语义和数据信息的通用参数。例如,每个使用者然后可以检查语义含义以及数据类型,并且如果需要就可以进行必需的转换。参数应当是通用的,这是因为难以知道通过API传递何类本文档来自技高网...
【技术保护点】
一种用于通过建立一个用于向应用程序添加特征的应用编程接口的框架来向软件应用程序动态地添加计算机软件特征的方法,所述方法包括:从应用程序互配框架请求一个与使用者应用程序的使用者兴趣相匹配的特征;使用所述使用者兴趣和一个特征性能 来标识一个提供者;如果标识了所述提供者,则向所述使用者应用程序提供所述特征;以及在所述使用者应用程序中应用所述特征。
【技术特征摘要】
US 2004-1-21 10/762,0511.一种用于通过建立一个用于向应用程序添加特征的应用编程接口的框架来向软件应用程序动态地添加计算机软件特征的方法,所述方法包括从应用程序互配框架请求一个与使用者应用程序的使用者兴趣相匹配的特征;使用所述使用者兴趣和一个特征性能来标识一个提供者;如果标识了所述提供者,则向所述使用者应用程序提供所述特征;以及在所述使用者应用程序中应用所述特征。2.如权利要求1所述的方法,进一步包括在应用程序互配框架应用编程接口中使用通用参数。3.如权利要求1所述的方法,其特征在于所述应用程序互配框架将所述使用者应用程序和所述特征提供者进行对接。4.如权利要求3所述的方法,其特征在于所述应用程序互配框架使用动态链接库函数调用将所述使用者应用程序和所述特征提供者进行对接。5.如权利要求1所述的方法,进一步包括和所述特征一起添加一个特征用户界面元件。6.如权利要求5所述的方法,其特征在于所述特征用户界面元件包括菜单命令和设置页面或者其它用户界面元件。7.如权利要求5所述的方法,其特征在于所述应用程序互配框架实现两个应用编程接口,包括一个使用者应用编程接口和一组提供者应用编程接口,其中所述提供者应用编程接口和所述预期用户界面元件相匹配。8.一种设备,用于向软件应用程序动态地添加特征以便能够将由软件程序提供的特征添加到用于所述设备的软件平台程序中,所述设备包括使用者应用程序,它公布表示所述使用者应用程序希望具有何特征的特征兴趣;至少一个提供者应用程序,它具有至少一个可用的特征;以及应用程序互配框架,它为所述使用者应用程序和所述提供者应用程序提供一个接口,以便使所述特征兴趣和可从所述提供者应用程序中获得的特征之一相匹配。9.如权利要求8所述的设备,其特征在于新的所述使用者应用程序是由终端制造商提供的应用程序。10.权利要求8所述的设备,其特征在于新的所述使用者应用程序是由第三方提供给所述设备的用户的应用程序。11.如权利要求8所述的设备,其特征在于...
【专利技术属性】
技术研发人员:马蒂帕尔纳纳恩,雅里拉克索纳恩,萨米罗桑达尔,阿里芒西卡马基,
申请(专利权)人:诺基亚公司,
类型:发明
国别省市:FI[芬兰]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。