首页> 中国专利> 只需设计一次就能在任何平台应用的移动应用开发框架

只需设计一次就能在任何平台应用的移动应用开发框架

摘要

本发明提供用作开发可移植软件应用的系统,方法及计算机程序产品。其方法包括步骤确定项目;在所述项目里加入画面,所述画面定义为通用画面或平台特定画面;在所述画面加入组件,所述组件定义为通用组件或平台特定组件;当所述画面被定义为通用画面而加入了一或多个平台特定组件时,重新定义所述画面为特定画面;定义从所述画面到一或多个其他画面的应用程序流程。

著录项

  • 公开/公告号CN102160037A

    专利类型发明专利

  • 公开/公告日2011-08-17

    原文格式PDF

  • 申请/专利权人 赛贝斯股份有限公司;

    申请/专利号CN200980136587.6

  • 发明设计人 萨米尔·尼加姆;

    申请日2009-07-15

  • 分类号G06F9/46;G06F17/50;

  • 代理机构北京路浩知识产权代理有限公司;

  • 代理人张晶

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 03:04:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-22

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20090715

    实质审查的生效

  • 2011-08-17

    公开

    公开

说明书

技术领域

本发明一般涉及软件开发,更具体地说,涉及多平台应用开发框架。

技术背景

近年来,随着愈来愈多竞争者加入经营移动装置的行列,软件硬件产生了众多互不兼容的软硬件平台。鉴于规格、输入及输出功能和操作系统等差异,发展可以在不同移动装置间轻松移植的软件应用很困难。开发人员为一款移动装置编写软件后,为了支持不同移动装置,经常会被要求重写大部分软件,甚至可能要用不同的编程语言。

因此,需要一种框架以支持单一设计在多个目标平台上应用。

发明内容

本发明的实施方式包括用于开发可移植软件应用的系统、计算机程序产品方法与计算机程序产品。例如,所述方法包括步骤:确定项目;向所述项目加入画面,所述画面定义为通用画面或特定平台画面;向所述画面加入组件,所述组件定义为通用组件或特定平台组件;当所述画面被定义为通用画面而加入了一个或多个特定平台组件时,重新定义所述画面为特定平台画面;并定义从所述画面到一个或多个附加画面的应用流程。

本发明的更多特征、优点、以及各实施方式的结构和运作将连同参照附图在以下详细描述。需注意本文描述的具体实施方式只示意作说明用途,而本发明并不局限于此。本发明所教导内容使相关领域技术人员显而易见地联想到更多的实施方式。

附图说明

纳入本说明并构成本文一部分的附图,描绘了本发明的实施方式。附图及其描述进一步说明了本发明的原理,并容许相关领域技术人员制作及使用本发明。

图1示出了本发明的一个实施例所述的软件开发项目,包括一个开发平台与至少一个部署平台。

图2示出了本发明的一个实施例所述的开发框架案例。

图3示出了本发明的一个实施例所述的,用户利用开发框架创建软件应用的流程图。

图4示出了本发明的一个实施例所述的流程图,描绘了分析项目移植到另一移动装置的步骤。

图5示出了本发明的一个实施例所述的流程图,描绘了定义用户自定的扩展的步骤。

图6示出了本发明的一个实施例所述的画面设计器。

图7A示出了本发明的一个实施例所述的流程设计器。

图7B示出了本发明的一个实施例所述的工具面板。

图8A示出了本发明的一个实施例所述的装置组件库。

图8B示出了本发明的一个实施例所述的装置应用管理视图。

图9示出了本发明的一个实施例所述的属性视图。

图10示出了本发明的一个实施例所述的计算机系统案例。

本发明现参照附图进行描述。一般来说,图中相似的参考编号指完全相同或用途类似的组件。此外,一般来说,参考编号最左方的数字指出该参考编号最初出现的附图的号码。

具体实施方式

1.简介

本发明的以下列详细描述将参照描述本发明典型实施方式的附图。本发明不排除其他的实施方式,以及根据本发明的范畴与精髓以其实施方式作出修改。因此,本发明并不只局限于下列描述。反而,本发明的范畴是受到本申请的权力要求部分而限制。

相关领域技术人员会意识到如下所述的本发明可以各种软件、硬件、固件、及/或如图显示的实体来实施。本发明不会被任何利用专门硬件控制去实践本发明的实际软件代码而限制。因此,本发明的操作性能将被描述,并凭以下的详细描述,意识到本发明的改造与各实施方式是可行的。

图1示出了本发明的一个实施例所述的软件开发项目100,其包括开发平台102和一个或多个部署平台104A-104C。根据本发明的一个实施例所述,开发人员在开发平台102编写软件应用,而其软件应用必须开发到能够在部署平台104组合中挑选的目标平台运行。其后,其软件应用的修订版将以更改软件应用的平台专用性质被开发,而其软件应用必须能够在部署平台104组合中挑选的另一个目标平台运行。这过程将在其后详细描述,并继续以图1作为参考。

2.开发框架

图2示出了本发明的一个实施例所述的开发框架200示例。根据本发明实施方式,框架200确定应用项目201,作为开发中软件应用的容器。项目201,根据本发明另一个实施例所述,包含了一或多个画面202与204,其向用户展示正在运行软件应用的部署部署平台104。所述项目根据本发明进一步实施方式所述,包含了应用流程206,所述流程定义软件应用中各种画面202与204之间的转换。此外,每一画面202与204根据本发明实施方例所述,包含了组件208。

相关领域技术人员会意识到在图2框架200所示的部署只作为范例而并非限制。比方说,软件应用里不一定包含画面202与204以执行某些功能;或不一定需要定义应用流程206或组件208。

图3是根据本发明实施方式所述,开发人员利用框架200创建软件应用的步骤流程图。根据本发明实施方式,其方法从步骤302开始到步骤304确定项目。

根据本发明实施方式,从既存项目中挑选以确定项目。根据本发明进一步的实施方式,项目在步骤302创建。根据本发明实施方式,创建项目时,开发人员可选择性地挑选与部署平台104相应的一或多个目标平台,将其软件应用目标部署于在此运行。比方说,开发人员可目标部署于美国微软研发的流动视窗平台、加拿大Research in Motion研发的黑莓平台、美国太阳微系统研发的Java ME平台。

此外,根据本发明实施方式,开发人员可以为项目设定开发语言。根据本发明进一步的实施方式,其开发语言可以是一种如Java或C#的第三代语言(3GL)。根据本发明另一实施方式,开发人员可选择的语言是根据所选定目标平台用以部署的部署平台而定。

根据本发明实施方式,开发人员在步骤306向项目加入画面,如画面202或204。根据本发明实施方式,所述被加入项目的画面是从既存画面里挑选。根据本发明进一步的实施方式,所述画面是在步骤306创建。

根据本发明实施方式,所述画面是被定义为通用(即,多平台)画面,或可将所述画面目标部署于一或多个平台专用。根据本发明额外的实施方式,所述画面是利用模板创建。

根据本发明实施方式,在画面被定义后,开发人员在步骤308把如组件208的组件加入其画面。根据本发明另一实施方式,开发人员出从工具面板挑选组件并将其加入其画面。根据本发明实施方式,开发人员可设置各控件属性,如控件的大小、启用与否;或静态地,在预设控件时更改属性,另某控件显示或隐藏;或动态地,利用所选开发语言编写的程序性逻辑更改。

根据本发明另一实施方式,开发人员可利用如元数据(metadata)的第四代语言(4GL)设置控件属性,以保留平台与控件关联的独立性。根据本发明进一步的实施方式,控件的属性可供选出3GL开发语言以让开发人员创建平台专用编码以操纵控件。

根据本发明实施方式,当控件被3GL平台专用编码操纵时,控件的实例与装载其控件的画面会被其框架标记为特定平台目标。如下所述,此动作将有助于验证工具识别当其软件应用部署到其他目标平台时必须修改的平台专用编码部分。

根据本发明实施方式,有些控件如按钮、文本输入字段、菜单等拥有接受输入功能。根据本发明进一步的实施方式,对应输入的逻辑利用4GL编码被定义,而其逻辑包括内置的验证规则。这种利用4GL的方式,可令控制逻辑维持通用及平台无关性,若原设计如是。另外,根据本发明进一步的实施方式,所选的3GL开发语言可利用3GL连接与输入接口联系。当3GL开发语言用作此用途时,其控件及包含其控件的画面会被标记为平台专用。

正如先前所披露,在步骤310决定画面上是否有任何平台专用控件。这包括,比方说,被3GL平台专用编码扩展过的通用控件、或本身原设计为平台专用的控件。当画面所包含的任何一件组件为平台专用时,其画面本身将于步骤312被标记为平台专用,否则该画面会于步骤314标记为通用画面。

根据本发明实施方式,开发人员随后在步骤316定义如应用流程206的应用流程应用流程定义了一系列画面,如画面202及204,并显示给用户。根据本发明实施方式,因所述应用流程采用4GL编码定义,使得整个应用项目,如应用项目201,得以在应用流程所包含的全部画面为通用画面时维持平台无关性。此外,根据本发明的另一实施方式,提供的3GL连接容许利用3GL开发语言编程的开发人员,利用3GL开发语言编写应用流程逻辑。相关领域技术人员会意识到上述组件的不同组合,如画面202与204、组件208、应用流程206、及应用程序项目201本身,可产生完全通用的应用程序或平台专用应用程序。根据本发明实施方式,定义多个实现相同功能的画面,每一画面对应不同目标平台被标记为平台专用。根据此实施方式,每一目标平台将定义各自的应用流程,而其应用流程只包含以上被定义的多个实现相同画面,其中对应流程目标平台的一个。此方式在步骤318结束。

3.确认及验证

图4示出了本发明的一个实施例所述的流程图400,其流程图描述了利用图3中流程图300方法创建的项目被分析是否适合移植到另一移动装置的步骤。其方法从步骤402开始,延续到步骤404并在此定义第一个装置的设定。相关领域技术人员会意识到装置的设定可以由不同方法去定义,比方说,设定的定义可由装置制造商提供、由第三者提供、或被开发人员在开发期间有需要时定义。

根据本发明的实施方式,装置设定包括装置在目标部署平台或流动装置的相关功能的有关资料。这包括,以作参考但不限制于,装置可使用的应用程序接口、装置的规格、装置的操作系统、及装置的输入及输出功能,如是否拥有蓝芽通讯模块等特征。

开发人员在步骤406创建应用程序,其应用程序针对在步骤404第一装置设定识别出的功能。其过程是根据本发明的实施方式,依照图3中的流程图300的方法进行。

当开发人员要移植针对由步骤404第一装置设定识别出的功能的应用程序到第二装置,而第二装置与第一装置功能有异,第二装置设定会在步骤408中为第二装置被定义。

在步骤410所述应用会为在第二装置的部署而被分析。根据本发明的实施方式,以上结果是靠进行移植可行性检测而得出。根据本发明的实施方式,其移植可行性检测会比较第一装置设定和第二装置设定而识别第一装置和第二装置的分别,从而进一步确定所述应用程序是否倚赖于任何虽存在第一装置,但有别或欠缺于所述在第二装置的功能。而且,根据本发明的实施方式,移植可行性检测会识别其应用程序在任何特定平台的组件、画面、应用流程、项目或3GL编码指令上的用途,如本发明的实施方式所述。相关领域技术人员会意识到上述比较只作为本发明的范例而并非局限,其他额外比较装置功能的方法,以及那些应用程序功能的用途,可以取替以上实施例并得到类似结果。

当上述比较被确定后,分析结果会在步骤412向开发人员显示出应用程序的不兼容的性质。此方法在步骤414结束。

4.可扩展性

根据本发明的实施方式,上述框架容许使用图5中流程图500概括的方法用户自定的扩展。根据本发明的实施方式,该方法由步骤502开始直至步骤504即新组件被定义时。上述新组件可能是,作为范例而非本发明的局限,用户接口、事件控制程序或模板。

根据本发明的实施方式,开发人员在步骤506定义组件功能,以为组件提供功能。根据本发明进一步的实施方式,其功能可以利用4GL或3GL编程来定义。根据本发明另一实施方式,其组件支持的平台在步骤508被相应的识别。作为本发明的范例而并非局限,当组件完全使用4GL编码定义理应为通用并可支持所有平台,但当组件部分地使用3GL编码定义时会使其组件为平台专用,并相对地定义其组件。其方法在步骤510相应结束。

5.调试

在其中一个实施方式开发人员可在开发平台102的编码(如:内置宏、用户自定编码、外挂编码等等)设立断点,并启动调试器。调试器容许开发人员浏览及调试应用程序数据。断点,据相关领域技术人员的认知,是例作如在预设值停顿等调试用途,让开发人员分阶段检查程序的状态。

根据本发明实施方式,开发人员可设立一或多项跟踪属性,而其属性可在应用程序在部署平台104a-c(或其他模拟器或设备)运行时生成输出。比方说明,预先定义的跟踪属性可供开发人员在各层面使用,上述层面包括但并不局限于装置运行时子系统与装置应用程序接口.

6.画面设计器范例

图6显示了根据本发明实施方式的画面设计器600。在此画面设计器600将用于开发和设计画面202与204作为示范。

根据本发明实施方式(并不作为本发明的局限),示范画面设计器600容许开发人员开发以下支持:

·样式,用户界面皮肤,控制性能,并确定行动。

·多平台应用程序的性质。

·事件定义。

·特定平台模式,与平台控件。

·用于通用平台及特定平台控件的特定平台事件。

·自定控件与其属性及其事件。

·在任何一个设备上快速预览可用目标平台。

·画面复制,其方式保留了通用及平台兼容的画面定义部分。

根据本发明实施方式,画面设计器600容许开发人员开发标签文本字符串和图像,以及将标签文本字符串和图像嵌入为动态元素(如:超链接等元素)。画面设计器600亦可包括控件属性视图,用于支持新事件和行动、自定控件、及加入事件的用户定义编码。示范属性视图900将会在以下进一步说明。

7.流程设计器和工具面板范例

图7A显示了根据本发明实施方式的流程设计器700。流程设计器700可用作于开发与设计应用流程206。流程设计器700还支持平台专用流程定义及在应用或画面流程加入通用画面或平台专用画面。

图7B显示了根据本发明实施方式的工具面板720。在一个实施方式中,工具面板720与画面设计器600和流程设计器700关联。在另一实施方式中,工具面板720可与画面设计器600和流程设计器700分开。开发人员可从工具面板720选择控件(如:按钮)并放在画面上。此外,开发人员可为每一控件设置属性,例如控件的大小、启用与否、显示或隐藏控件等等。件时静态地更改属性来确定,或通过动态地使用选择的开发语言的程序逻辑来确定。

根据本发明实施方式(并不示意为本发明的局限),工具面板720支持以下功能:

·标准(或预先定义)控件及画面。

·平台专用控件及画面。

·输入和输出的外设接口控件(如打印机,条形码

扫描仪,数码相机和蓝牙设备等。)

·加入自定控件及画面。

8.装置组件库与装置应用管理视图范例

图8A显示了根据本发明实施方式的装置组件库800。如图8A显示,装置组件库800可包含用文件夹代表的装置组件。

图8B显示了根据本发明实施方式的装置应用管理视图820。装置应用管理视图820容许开发人员开发浏览应用程序现有的元数据。应用程序的元数据可包含画面组、画面、变量、控件和用户定义的事件编码。装置应用管理视图820还容许开发人员进行各种开发行动(如:双击打开、创建、修改、删除),以及拖放用户界面元素到画面设计器600(或流程设计器700)。

9.属性视图范例

图9显示了根据本发明实施方式的属性视图900。开发人员可用属性视图900来定义与画面202和204关联的控件和用户界面元素的行为。开发人员还可以使用属性视图900来定义与控件关联的事件。在一个实施方式中,每个控件可拥有自己的支持事件列表。事件可以预先定义以用于内置的标准控件。有些事件可以在开发人员选择特定平台时被加入到标准控件。特定平台控件也可拥有事件。

在一个实施方式中,事件处理程序可以使用编程语言的预建行动(如:4GL预建行动)去实现。事件处理程序亦可以根据一或多种语言选择(如:Java和C#),通过使用用户定义的程序码来实施。

10.验证规则

在一个实施方式中,验证规则是使用在实现流程、画面排版功能、与验证数据的功能。比方说,验证可以用预先定义的内置规则来实现。验证规则可包括数据类型检查、范围检查(数字)、枚举值检查、界限检查、必需填写项目检查、数字检查(社会安全号码、书号等)及一致性检查。验证规则也可以被定义为表达式或函数,包括但不局限于用户定义编码。

在一个实施方式中,验证规则可以用作实现事件处理程序。验证规则还可以在程序运行时用于动态地选择及应用样式,并从用户自定编码调用,所述用户自定编码包括事件处理程序、外部代码或应用程序接口。

11.本机代码编辑器

在一个实施方式中,与开发平台102关联的本机代码编辑器可以访问应用程序元数据。举例但不以此为本发明局限来说,与开发平台102关联的本机代码编辑器通过生成的代理Java类为开发人员提供带有应用元数据的认识编辑支持。

本机代码编辑器的实施方式亦通过生成的C#类提供带有应用元数据的认识。本机代码编辑器还可以为其他编程语言提供支持。此外,实施方式也包括支持第三者及利用运行时库的自定应用程序接口集成。比方说,这种应用程序接口集成可以通过为每个目标平台设置应用项目属性来部署。

12.代理类的生成

本发明实施方式可以在创建应用程序期间生成代理类。比如说,代理类是在缺乏实际类别时被用作包装使用。代理类可利用本机代码编辑器提供应用元数据认识。

在一个实施方式中,开发平台102在画面及流程设计动作中,其包括但不局限于加入新画面及控制画面,自动生成代理类。开发平台102亦提供内容菜单及对话框以批量生成代理类。

13.计算机系统实施范例

本发明的不同方面都可通过软件、固件、硬件或以上的组合而实现。图10显示了范例计算机系统1000,其系统可以利用计算机可读代码来实现本发明的全部或一部分。比如说,图3的流程图300、图4的流程图400、以及图5的流程图500所描述的方法可在系统1000中实现。本发明的各个实施方式依据此范例计算机系统1000描述。相关领域技术人员在完成阅读本说明后,即得悉如何利用其他计算机系统及/或计算机结构实施本发明。

计算机系统1000包括一个或多个处理器,如处理器1004。处理器1004可以是特定用途处理器或通用处理器。处理器1004连接到通信基础设施1006(如:总线或网络)。

计算机系统1000还包括一个主记忆体1008,理想以内存位首选,亦可包括副记忆体1010。副记忆体1010可包括,比如说,硬盘驱动器1012、可拆除存储器1014及/或记忆棒。可拆除存储器1014可包括软盘驱动器、磁带驱动器、光盘驱动器、快闪记忆体等等。可拆除存储器1014使用一般认知方法来读取及/或写入可拆除存储单元1018。可拆除存储单元1018可包括软盘、磁带、光盘等,并被可拆除存储器1014读取及写入。相关领域技术人员会意识到可拆除存储单元1018包括用来存储计算机软件及/或数据的计算机可用存储媒体。

在另一实施方案,副记忆体1010可包括其他容许计算机程序或其他指令装载到计算机系统1000的类似媒体。其媒体可包括,比如说,可拆除存储单元1022及界面1020。这些媒体的例子可包括盒式程序磁带与其接口(如:视频游戏装置)、可拆除存储芯片(如:可擦去可编程只读存储器或可编程只读存储器)及相关插口、及其他容许软件和数据从可拆除存储单元1022传送到电脑系统1000的可拆除存储单元1022和界面1020等。

计算机系统1000可包括通讯接口1024。通讯界面1024容许软件和数据传送于计算机系统1000和外设装置之间。通讯接口1024可包括调制解调器、网络接口(如:以太网卡)、通讯端口、PCMCIA插槽及插卡等等。作为讯号形式,利用通讯接口1024传送的软件和数据,可以是电子、电磁、光学或其他可与接口1024连接的讯号。这些讯号会经通讯通道1026提供给通讯接口1024。通讯通道1026进位讯号及可用电线或电缆、光纤、电话线、手提电话连接、射频连接或其他通讯渠道实施。

在本文中,术语“计算机程序媒体”和“计算机可用媒体”一般是指例如可拆除存储单元1018、可拆除存储单元1022及安装在硬盘驱动器1012的硬盘等媒体。经通讯通道1026传输的讯号亦可实施以上描述的逻辑。计算机程序媒体和计算机可用媒体亦可代表存储器,如主存储器1008和副存储器1010,其可以是存储器半导体(如:动态内存等)。这些计算机程序产品是提供软件给计算机系统1000的手段。

计算机程序(亦称为计算机控制逻辑)存储在主记忆体1008及/或副记忆体1010。计算机程序亦可以透过通讯接口1024被接收。当其计算机程序执行时,使计算机系统1000能够根据以上讨论去实现本发明。尤其是当计算机程序执行时,使处理器1004能够根据如以上讨论过的流程图300的图3、流程图400的图4、流程图500的图5中说明的步骤去实现本发明的过程。因此,上述计算机程序可代表计算机系统1000的控制器。当本发明实施使用中软件实现时,其软件可存储于计算机程序产品内及经由可拆除存储驱动器1014、界面1020、硬盘驱动器1012或通讯界面1024装载到计算机系统1000。

本发明亦针对包括存储在任何计算机可用媒体的软件的计算机程序产品。当一个或多个数据处理装叠执行上述软件时,会令数据处理装置根据以上描述运行。本发明的实施方式采用任何现在所知或在未来的计算机可用或可读媒体。计算机可用媒体的例子包括,但非本发明的局限,主存储装置(如:任何种类的随机存储记忆体)、副存储装置(如:硬盘驱动器、软盘驱动器、光盘、压缩磁盘、磁带、磁存储设备、光学存储设备、微机电系统、纳米技术存储设备等)、及通讯媒体(如:有线和无线通讯网络,地区域网,外联网,内联网等)。

14.结论

上述以列出本发明的各实施方式,读者应了解以上实施方式为本发明的范例,而并非本发明的局限。相关领域技术人员在了解上述后,应可不偏离本发明的精髓及后附权利要求书所定义的范畴,进行形式和细节上的改动。读者应了解到本发明并不局限于以上范例。本发明概括了在本文形容过的任何操作要素。因此,本发明的广度与范畴不应被上述描述的实施方式范例规限,而只应根据所附的权利要求书和其等同来作定义。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号