创建软件应用的制作方法

文档序号:6422342阅读:213来源:国知局
专利名称:创建软件应用的制作方法
技术领域
本发明涉及软件开发领域,并且尤其涉及由应用专家而不是软件专家进行的软件应用的开发。
购买CE产品的消费者开始期望其具有丰富的特征,所述CE产品例如机顶盒(STB)、TV、录像VCR、DVD、个人录像机PVR、音频等等。一般地软件被用作以可接受的价格提供这种特征的手段。不同于PC的用户,CE产品的消费者不能容忍软件错误或崩溃,因此这种产品中的软件每次都需要强健地工作。这就意味着需要更多的测试,而这又提高了软件开发成本;制造商倾向于在若干产品范围或产品线内重复使用软件编码以便对于这种投资获得最大的回报。更短的产品生命期的趋势使得这类重复使用(作为降低单位成本的手段)变得较不可行。另外,像STB这样的产品可以作为网关出售以使消费者能够访问一个以上的服务供应商。在每个服务供应商需要其自己的“外罩风格(house style)”或其他“观感(look and feel)”的情况下,使用对于所有服务供应商都通用的软件的目标就更加难以实现。
减轻这种问题的一个方法就是在一个较高层级的应用上来开发软件,例如通过编写代码,所述代码引用预先编写的较低层级的软件模块,所述每个较低层级软件模块可以处理总体应用的一个更加详细的方面。Gloudeman等人的美国专利6,028,998描述了一个示例,其中公开了一种用于构造建筑设备自动化系统的应用框架,该框架提供一种标准对象、组件和较小的特定功能应用的库,所述标准对象、组件和较小的特定功能应用可以连接在一起用来建立更加复杂的系统。该应用框架嵌入了经验丰富的设计者的知识和最好的实践,允许具有较少经验的软件开发者来建立系统。这种系统的一个缺点是必须编写附加的软件来将标准对象连接在一起。包括这种软件的总体程序需要严格的测试以确保强健性,这种需要伴随着这样一个事实,即这种系统是固有复杂的,其可能导致较高的测试成本。而且,一个随后进行的微小改变,例如添加另一个特征(例如标准对象的一个实例),便会需要再次执行对整个应用的测试。
可重复使用的软件组件的一个示例是JavaBeansTM(来自美国SantaClara的太阳微型系统公司(Sun Microsystems Inc.)的面向对象编程(OOP)接口),其使得JavaTM类更易于使用为可重复使用的软件组件。由于是可移植的和结构中立的因而允许其被下载到任何销售商的硬件上并在所述硬件上运行,因此JavaTM对于提供打算在CE产品上运行的服务的提供商来说很有吸引力。JavaBeansTM(或Bean)的创建是通过使用JavaTM编程语言编写程序,并且包括例如用来描述诸如用户界面(UI)特性或用来触发Bean和其它的Bean进行通信的事件的属性的JavaBeansTM语句。如在1997年8月的Java世界(JavaWorld)的“A walkingtour of JavaBeans(JavaBeans徒步旅行)”中描述的那样,当一个开发者将各个Bean连接在一起以创建一个应用时,集成的开发环境(IDE)可以呈现出一个包括所有Bean属性及其当前值的属性表单(属性表单是一个用于例如通过使用菜单来设置和/或查看属性的对话框)。开发者以图形的形式设置属性,IDE将其转换成调用Bean的设置方法(settermethod),其更改Bean的状态。这对于具体应用定制了Bean。因此使用JavaBeansTM创建应用需要IDE系统在设计时间创建和编译代码以确保所连接的各个Bean能够适当地协同工作。假定这种应用令人满意地运作,然而仍然需要测试最后确定的应用程序(例如测试错误或程序崩溃)。另外,要求昂贵的JavaTM程序员自己开发所述应用(即,将各个Bean连接在一起)。
如在由Carnegie Mellon软件工程学院(http://www.sei.cmu.edu/str/descriptions)出版的因特网文献中描述的那样,可重复使用的软件组件必须通过一些定义明确的基础结构来集成。这种基础结构提供用来由相异组件形成系统的绑定(binding)。对象请求代理(ORB)是管理对象间通信和数据交换的中间件技术。它具有这样一个优点,即对象通信的细节对于开发者是隐藏的并被隔离在ORB中,这潜在地使得这种系统是更加可维护的。ORB技术的一个缺点是它需要希望通信的对象具有可见的(可读取的)数据和明确定义的应用编程接口(API)。由于需要定义并可能标准化这种数据和API,所以这可能减慢产品的开发。而且,ORB兼容的对象加上ORB代码本身的代码长度可能是非常大的,对于往往具有有限的存储、下载和/或处理这种代码的能力的CE产品来说,这是一个特别重要的因素。
在CE市场中运营的服务供应商需要建立和维护他们的商标并且不断发展以便竞争,这产生了这样一个需要,即需要开发迅速应对变化的市场趋势的应用并且保持服务供应商的观感;而且,一个应用的有效寿命将会是较短的。所有这些要求意味着应用必须被迅速开发并且是低成本的;这种应用当然必须同时在使用中是强健的。对于一些现有技术的方法(包括上面提到的那些),应用开发包括两个顺序的任务,首先是应用要求的收集,继之以由软件专家(例如程序员)实现以确保应用的强健性(例如它具有几乎没有的错误或很少崩溃);这种方法的缺点包括开发速度慢和/或性能差(例如由于应用专家和程序员的必要的合作及测试等等)和成本高(例如程序员的费用)。另外一个缺点是表面上非常相似的应用不能容易地利用通用软件代码而不危及强健性。
本发明的一个目的是通过一种利用两个或多个可重复使用的软件组件创建基于软件的应用的方法,提供对这些问题及其他问题的一种解决方案。
根据本发明提供一种协调用于在一种软件控制的设备中执行的应用的方法,该应用包括多个预先编译的可重复使用的组件并且其中至少一个所述组件具有至少一个可配置属性,该方法包括以下步骤访问和所述多个预先编译组件相关的配置数据;以及,对于每一个组件确定对应于该组件的配置数据;创建该组件的实例;以及其中该组件具有至少一个可配置的属性通过依靠该配置数据配置该组件实例的属性来配置该组件的实例;以便该应用的执行至少部分地通过各组件的所配置实例的交互而确定。
当创建应用时,软件代码的重复使用被视为一种可能减少总体花费的手段。本发明允许应用在所需要的组合中采用预先编写并且测试的代码块,而不降低代码执行的强健性。用这种方法,当在一或多个应用内利用代码块时,开发和测试这块代码消耗的工作和成本可以不必丢失。这例如和一个使用JavaBeans建立的应用形成了对比,所述使用JavaBeans建立的应用需要附加代码来适当地将这些Bean链接在一起(即,定制它们的属性)。这种代码有可能使得总体应用对于错误以及崩溃来说不够强健并且/或者使得应用只能由在编程方面相当熟练的人员建立。
为便于在应用中使用,一块软件代码可以提供一个或多个性能或属性,其可以以适合于应用需要的一个或者多个方式进行配置。这种属性可能影响代码操作的功能性方面或其它方面,包括但不限于初始化、用户界面(Ul)、动作以及通信(例如和其它组件或接口通信)。这样的一块代码以下称作一个组件并且是预先建立的(即在开发一个应用之前构造,例如通过编码和/或编译)以及可以是可配置的。在本发明的环境中,预先建立的组件是可重复使用的,因为它能够被合并到不同的应用中而无需首先为每一个这种应用重新建立。本发明的一个特定方面是组件的配置可以不通过编写或编译附加的软件代码(即除了包含在组件中的代码)而达成。为了做到这一点,组件可以确定配置数据以便至少部分执行其自身的配置。例如,它可以被安排成通过(构成)一个应用的一或多个组件来访问一或多个文件内的配置数据;作为响应,关于其中一个组件的配置数据可以被识别以及可以创建该组件的一个实例,然后根据所述数据配置该实例,这例如是通过组件加载所述数据或以任何其它方式作用于所述数据以便根据所述数据执行一个或多个配置任务。遵循本发明,可以通过适当地组合两个或更多这种配置的组件来创建一个应用,所述配置可以允许组件根据应用的需要而协同工作。所述组件可以被安排在一个档案库文件中,所述档案文件包括但不限于Java档案(JAR)文件或ZIP文件。然后可以让该档案库文件对于在其上运行应用的软件控制的设备(例如一种目标平台)可用。
本发明的方法可以用于以任何合适编程语言编写的组件。组件优选地为用JavaTM语言编写,即预先编写的JavaTM类。通过适当地组合所配置的JavaTM组件创建的最终的JavaTM应用包括但不局限于applets、Xlets和servlets。
根据本发明的另外一个方面,提供了一种开发一个应用的方法,包括以下步骤访问一组预先编译的可重复使用组件;
选择至少两个组件间的一个交互,其中至少一个所述组件具有可配置属性;依靠所选择的交互配置该属性或每个属性;并且依靠该配置的属性产生配置数据,以便使得依靠配置数据所配置的所述至少两个组件的实例能够执行所述选择的交互。
一个应用可以包含一个或多个预先编译组件的共同操作。为了开发一个新的应用,选择合适的组件,其可以个别地和/或通过交互提供必要的功能。这些所选择组件中的至少一个包括一个可配置属性,对该属性的配置可以例如确定该组件和另一个组件的交互。因此,组件的属性可以被配置为适当地提供一个想要的功能。从而,可以产生配置数据并且令配置数据可用于在目标平台上配置组件的一个实例以便实现想要的功能(例如组件交互)。
配置数据可以以任何合适的形式构造以便由该数据所涉及的一个或多个组件读取,所述文件结构可以包括但不局限于阵列、连接表、数据映象、XML脚本或ASCII文本。在使用中,包括预先编写以及预先编译的组件的实例的应用可以在一个合适的目标平台上运行,所述目标平台包括但不限于PC、MAC、消费者电子产品(TV、VCR、DVD、STB、PVR等等)以及互联网设备。对于一个给定的应用,一个平台可以经由本地存储(例如ROM、RAM、硬盘驱动器HDD)、一个记录载体(例如软盘驱动器FDD、光盘)和/或经过远程访问来访问配置数据以及一组必要的预先编译的组件,所述远程访问例如是从一个网络或互联网(使用以太网或调制解调器,例如拨号、宽带、电缆等等)或其任意组合进行访问。与一个应用相关的配置数据可以包含被利用来实现应用的组件的身份、用于配置组件的数据以及导航数据的任何组合。根据配置数据,运行在平台上的软件可以安排适当的组件被实例化、配置以及运行以便执行该应用。
为了开发一个用于本发明方法的组件,可以定义组件的一或多个可配置属性,所述属性被定义为可以根据组件可访问的配置数据来配置。通过适当的编码和编译,所述组件可以用于访问配置数据并且配置一个或多个它的可配置属性。用这种方法,可以实现强健操作然而功能灵活的组件。可以建立一组这种组件来适当地在不同的组合中共同操作以产生各式各样的强健的应用,其中每个应用不需编写附加代码。可选择地,通过为组件定义一个附加的合适的API,对于销售商或高级用户来说有可能向一个应用添加附加的组件来更进一步的加强性能。
可以根据本发明方法的一个方面采用任何合适的工具来开发应用。而且,这种工具可以使用任何适当的语言,即不局限于由应用组件使用的一种或多种语言。作为一个示例,合适工具的性能包括一个库,包括对一组预先编译的组件的引用;用户界面,以允许应用开发者从该库中选择预先编译的组件;被提供所选择的组件间的可能的交互;从所提供交互中选择一个或多个交互(基于想要的功能);构造应用并且检查它的功能;一个配置程序依靠所选择的交互配置所选择组件的属性和交互行为;依靠所配置属性产生配置数据。
从上述内容看,根据本发明的方法允许不擅长软件编程的开发者、甚至是没有编程能力的开发者创建应用,这是由于应用包含已有的适当组合的预先编译的软件组件,而不必要附加的软件编码和/或编译。这具有若干好处——应用开发可以由最理解该应用的专家执行;这种专家(例如图形设计员)同时可能比程序员的成本更少;由于仅仅需要在功能层级对应用进行测试,这有利于软件组件的重复使用,从而允许更加快速地建立应用。因此,应用是强健的,尤其是不增加软件错误和/或崩溃的可能性。可以由有经验的软件编程人员开发成分组件(constituent component)本身并对其进行最优化和测试。这又可以允许应用获得某一总体程序大小(例如压缩性)和/或速度,其在所构想的CE和类似应用中被认为是重要的方面,例如通过一个低速网络迅速地传递一个应用的能力或在一个具有普通存储和处理性能的目标平台上存储并且运行该应用的能力是非常有价值的。
现在将仅以示例的方式参照附图来描述进一步的特征和优点,其中

图1是体现本发明一个方面的示例性方法的流程图;图2是使用一种配置工具开发的简单应用的示意图3是示出创建和执行一个应用的总体过程的示意图;以及图4是示出基于JavaTM应用的配置的一个示例的示意图。
在下面的描述中,术语“配置数据”包括标识软件组件以及还可以确定该组件的一个或多个属性的配置的数据。
图1示出体现本发明的一个方面的一个示例性方法的流程图。本方法一般显示在100中,并且描述了协调用于在软件控制的设备内执行的应用的过程。本方法开始于102并且在104访问配置数据。对于一个设备来说可能存在各式各样的访问此类数据的源,其包括但不限于本地非易失性存储(例如ROM、HDD)、记录载体(例如FDD、CD-ROM、Zip驱动器、存储卡)或位于网络或因特网网站的数据文件。配置数据可以包含用于一或多个应用中的各组件的身份以及配置其属性的数据。实际上,配置数据可以驻留在一或多个文件中,所述文件可以包括对要由该应用使用的其他资产(例如视频、音频、图形、文本等等)的引用;可以为整个应用或该应用的一个或多个部分定义一种配置数据文件,例如相似的功能以及交互性的一个集合位于其中。所访问的配置数据106可以在108被存储。接下来,对于每一个所标识的应用组件,在110确定配置以及通过引用一个组件库114而实例化112该组件的一个实例。组件库可以包含位于本设备本地和/或远离本设备的一个或多个存储器;例如,该库可以包含存储在本地非易失性存储(ROM、HDD等等)中的流行的(例如对很多应用都通用的)组件加上远程地存储在网络上的其它组件。组件可以以一个或多个档案文件的形式由目标访问,所述档案文件包括但不限于JAR或ZIP文件。组件或档案文件可以从一种网络或因特网上下载,或通过任何合适的装置(例如记录载体)以类似于上文讨论的配置数据的方式传送。该实例化的组件然后可以在116被配置(注意应用的特定组件可能需要配置或可以不必配置)。本方法然后在118循环以确保应用所需要的所有组件都被实例化以及被配置。一旦达到了这一点,应用就准备好在120执行,例如,当应用运行时,应用的配置数据可以指示应该将初始焦点(initial focus)给哪一个组件。
图2示出使用一个配置工具开发的简单应用的示意图。应用的各组件一般地显示在200中。例如由图形设计员使用配置工具来开发该应用。应当注意的是工具本身可以使用任何适当的程序设计语言构造,而不仅仅是由该应用使用的语言(即,由该应用利用的组件所使用的语言)。就其功能而言,该工具可以包括或访问一组或一套202可用组件,设计者可以从其中选择用于该应用的组件。配置工具处理如何工作的一个示例是基于预先编译的JavasTM类(组件)创建一个MHP(多媒体家庭平台)交互TV应用;该应用包括广告图形、用于输入一个电子邮件地址来获得进一步信息的文本输入装置以及“发送”和“取消”按钮。设计者可以使用配置工具来加载和定位图形组件204并且向其中加载适当的广告图形文件(图2未示出)。接下来,文本输入字段组件206可以被添加并且其大小、字体等属性被配置。然后设计者可以添加两个标记为“发送”和“取消”的按钮组件208、216。该“发送”按钮208可以与另外的组件210交互,所述210通过在它的动作列表中具有“调用返回信道(Call Back Channel)”来处理和返回信道(back channel)的通信。返回信道组件210可以在它的动作列表中具有发送文本字段动作,其用于将文本输入字段的内容212发送到返回信道214。“取消”按钮216可以在它的动作列表中具有一个退出动作以便在218退出该应用。该工具可以为设计者提供(例如通过仿真)执行应用以便测试组件间的正确交互的便利。一旦开发了该应用后,就可以输出对应于该应用的配置数据220,并且由该应用使用的适当的组件(包括应用内核、图形、文本、按钮以及返回信道)可以在JAR或ZIP文件222中归档。经过例如(然而并非局限于)本地存储、记录载体、网络或因特网,可以以任何适当方式使配置数据可用于目标平台。同样,组件(例如JAR或ZIP文件)也可以经过一个或多个这些机制(然而并非一定是相同的)而变得可用。配置工具可以为应用产生若干配置数据和/或JAR或ZIP文件。对本领域技术人员来说显而易见的是这些文件可以以上述机制的任意组合变得可用于所述目标。
以下更加详细的描述体现本发明各方面的示例。本例涉及一种消费者电子设备(例如一个STB、PVR等等),其用来接收来自若干服务供应商的数字电视服务(例如与多媒体家庭平台MHP相关),该设备本身是一个标准化产品,其预加载有根据上文描述的本发明的方法而创建的合适的Java虚拟机(JVM)以及JavaTM应用。实际上,JavaTM应用可以作为CE设备的固件的一部分而被合并。使用如上所述的配置工具,由JavaTM应用使用的组件可以被集合于JAR文件之中。
每个服务供应商产生(例如使用它的室内图形设计员)它自己的配置数据,以便当JavaTM应用运行时,配置数据可以例如根据服务供应商的要求来安排和配置JavaTM应用的图形用户界面(GUI)的导航以及观感。例如,一个供应商可能希望用宣传其服务的闪动屏幕来开始服务,然而另一个供应商可能希望直接进到电子节目指南(EPG)而第三供应商可能希望以重大新闻信息开始。图3示出了为一个通用的基于JavaTM的应用创建配置数据处理的一个示例处理的示意图。该处理一般地显示在300并且包括由服务供应商使用以产生用来配置一个通用的应用306的配置数据的配置工具302。同样,其它服务供应商为通用的应用产生配置数据。对应于服务供应商的该组配置数据304可用于配置通用的JavaTM应用306。为了实现用于特定服务供应商的用户应用308,对应于该服务供应商的配置数据304配置该应用306的一个实例。在CE设备上有可能同时运行一个以上的应用实例以便用户能够在服务供应商之间无缝地切换,而没有所定制观感或特定于每个供应商所配置的应用的其它方面的延迟或者是丢失。
当首先和CE设备连接时可以下载配置数据,然后将其存储在非易失性存储器(例如闪速存储器、HDD等等)中。然而,如果服务供应商希望提供一种不同的用户应用或更新一些数据(例如EPG),那么可以下载配置数据的一个新的版本,并且JavaTM应用用新的数据重新开始(或者如果配置数据是基于每页一个文件,那么按需要仅仅更新适当的对象)。因此一些用户应用可以很少改变而另一些可以实时改变(例如数字电视文字广播服务)。用于这种用户应用中的组件可以例如是返回信道连接(经过电话或电缆)、文本输入小部件、位像等等,或它们可以是更加复杂的一些事物,例如完整的EPG。无论如何,他们的外观和工作方式将取决于实际的配置数据。
图4是示出基于JavaTM的应用的配置的一个示例的示意图。其情境是驻留在目标设备中的应用的配置,所述目标设备例如是机顶盒。配置数据402可用于目标设备。JavaTM应用包含在一或多个JAR文件404中,并且包括由配置工具选择(当创建应用时)的组件410、412。应用加载器类(组件)406读取配置数据402并且确定用户应用所需要的应该对应于JAR文件中可用的组件的组件。加载器然后开始对配置数据的解析414并且将解析数据414转发给JAR文件第一个所需要的组件410。作为一种静态方法该组件解析(416)解析数据;发现一个对应的数据集后,该静态方法根据所述数据创建该组件的一个实例并且配置它的属性。对该组件的实例执行的或由该组件的实例执行的动作418也是根据配置数据确定的。剩余的解析数据414然后被转发到剩下的组件(在这个示例中仅为组件412)以用于解析,直到所有需要的组件都被实例化和配置并且确定了动作。以和组件410类似的方式,关于组件412解析(424)解析数据,创建该组件的一个实例,并且确定对所述组件的实例执行的或由该组件的实例执行的动作426。所有实例化的组件420的列表408被返回到应用加载器406。最后加载器通过由目标平台使用的任意装置开始应用运行422。
支持本发明的组件可以具有以下元素一种创建它本身的新的实例的方法;一种解析方法,用于通过应用加载器接收被传递给它的配置数据,该应用加载器仅仅作用于相关的标记(token)并且将余下的传递给下一个组件;一种方法,用于由每一个实例根据所解析的数据来配置其本身,并且收集要由其本身执行的动作的参数;一种方法或多种方法,用于实现对所述组件的实例执行的或由所述组件的实例执行的动作,其包括导航的方法。这些实例和相关的方法的整个列表可以组成一个应用。
上述方法和实现方式仅仅通过示例来表示,并且代表对可以容易地由所属技术领域的专业人员识别出来以利用本发明的优点的许多方法和实现方式的选择。
在上文的描述中参照图1公开了一种协调用于在目标设备上执行的软件应用的方法,该应用包括一组预先编译、可重复使用的组件和对应的配置数据。配置数据108可用于可以在其上运行应用的目标设备。对于构成应用的每一个组件,确定(110)相关的配置数据,并且依靠所述配置数据实例化(112)和配置(116)该组件的实例。应用的执行120至少部分地由各组件的所配置实例的交互确定。
权利要求
1.一种协调用于在一种软件控制的设备中执行的应用的方法,该应用包括多个预先编译的可重复使用组件并且其中至少一个所述组件具有至少一个可配置属性,该方法包括以下步骤访问(104)和所述多个预先编译的组件相关的配置数据;以及,对于每一个组件确定(110)对应于该组件的配置数据;创建(112)该组件的实例;以及其中该组件具有至少一个可配置的属性依靠该配置数据通过配置它的属性来配置(116)该组件的实例;以便该应用的执行(120)至少部分地通过所述组件的所配置实例的交互而确定。
2.如权利要求1的方法,其中对应于组件的配置数据至少部分地通过该组件确定。
3.如权利要求1到2中任何一个的方法,其中所述组件作为一个档案文件可用于所述设备。
4.如权利要求1到2中任何一个的方法,其中所述配置数据至少部分地从本地存储访问。
5.如权利要求1到2中任何一个的方法,其中所述配置数据至少部分地从记录载体访问。
6.如权利要求1到2中任何一个的方法,其中所述配置数据至少部分地从网络访问。
7.一种如权利要求6的方法,其中所述配置数据至少部分地从因特网访问。
8.一种开发一个应用的方法,包括以下步骤访问一组预先编译的可重复使用组件;选择至少两个组件之间的一个交互,其中至少一个所述组件具有可配置属性;依靠所选择的配置配置该属性或每个属性;并且依靠所配置属性产生配置数据,以便使得依靠配置数据配置的所述至少两个组件的实例能够执行所述选择的交互。
9.一种开发用于权利要求8的方法的预先编译的可重复使用组件的方法,该方法包括以下步骤定义所述组件的属性,所述属性可依靠配置数据来配置;编码所述组件,所述编码适于访问所述配置数据并且依靠所述配置数据来配置所述组件的可配置属性;并且编译该组件。
10.一种由权利要求9的方法产生的预先编译的可重复使用组件。
11.根据权利要求1、2、8或9中的任何一项权利要求的方法,其中组件是预先编写的Java类。
12.一种包括适于执行权利要求1、2、8或9中的任何一项权利要求的方法的软件的记录载体。
13.一种被配置为执行权利要求1、2、8或9中的任何一项权利要求所要求的方法步骤的软件实用程序。
14.一种包括数据处理器的计算机设备,所述数据处理器在操作中由权利要求13所要求的软件实用程序引导。
15.一种实质上如以上描述并且参考附图的协调用于在软件控制的设备中执行的应用的方法。
全文摘要
一种协调用于在目标设备上执行的软件应用的方法,该应用包括一组预先编译的、可重复使用的组件以及对应的配置数据。配置数据(108)可用于在其上运行所述应用的目标设备。对于构成应用的每一个组件,确定(110)相关的配置数据并且依靠配置数据实例化(112)和配置(116)所述组件的实例。应用的执行(120)至少部分由各组件的所配置的实例的交互确定。
文档编号G06F9/44GK1961287SQ200380102299
公开日2007年5月9日 申请日期2003年10月14日 优先权日2002年10月29日
发明者M·J·普卢默 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1