CN102160037B - 只需设计一次就能在任何平台应用的移动应用开发框架 - Google Patents
只需设计一次就能在任何平台应用的移动应用开发框架 Download PDFInfo
- Publication number
- CN102160037B CN102160037B CN200980136587.6A CN200980136587A CN102160037B CN 102160037 B CN102160037 B CN 102160037B CN 200980136587 A CN200980136587 A CN 200980136587A CN 102160037 B CN102160037 B CN 102160037B
- Authority
- CN
- China
- Prior art keywords
- picture
- platform
- application
- development
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供用作开发可移植软件应用的系统,方法及计算机程序产品。其方法包括步骤确定项目;在所述项目里加入画面,所述画面定义为通用画面或平台特定画面;在所述画面加入组件,所述组件定义为通用组件或平台特定组件;当所述画面被定义为通用画面而加入了一或多个平台特定组件时,重新定义所述画面为特定画面;定义从所述画面到一或多个其他画面的应用程序流程。
Description
技术领域
本发明一般涉及软件开发,更具体地说,涉及多平台应用开发框架。
技术背景
近年来,随着愈来愈多竞争者加入经营移动装置的行列,软件硬件产生了众多互不兼容的软硬件平台。鉴于规格、输入及输出功能和操作系统等差异,发展可以在不同移动装置间轻松移植的软件应用很困难。开发人员为一款移动装置编写软件后,为了支持不同移动装置,经常会被要求重写大部分软件,甚至可能要用不同的编程语言。
因此,需要一种框架以支持单一设计在多个目标平台上应用。
发明内容
本发明的实施方式包括用于开发可移植软件应用的系统、计算机程序产品方法与计算机程序产品。例如,所述方法包括步骤:确定项目;向所述项目加入画面,所述画面定义为通用画面或特定平台画面;向所述画面加入组件,所述组件定义为通用组件或特定平台组件;当所述画面被定义为通用画面而加入了一个或多个特定平台组件时,重新定义所述画面为特定平台画面;并定义从所述画面到一个或多个附加画面的应用流程。
本发明的更多特征、优点、以及各实施方式的结构和运作将连同参照附图在以下详细描述。需注意本文描述的具体实施方式只示意作说明用途,而本发明并不局限于此。本发明所教导内容使相关领域技术人员显而易见地联想到更多的实施方式。
附图说明
纳入本说明并构成本文一部分的附图,描绘了本发明的实施方式。附图及其描述进一步说明了本发明的原理,并容许相关领域技术人员制作及使用本发明。
图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 inMotion研发的黑莓平台、美国太阳微系统研发的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.结论
上述以列出本发明的各实施方式,读者应了解以上实施方式为本发明的范例,而并非本发明的局限。相关领域技术人员在了解上述后,应可不偏离本发明的精髓及后附权利要求书所定义的范畴,进行形式和细节上的改动。读者应了解到本发明并不局限于以上范例。本发明概括了在本文形容过的任何操作要素。因此,本发明的广度与范畴不应被上述描述的实施方式范例规限,而只应根据所附的权利要求书和其等同来作定义。
Claims (13)
1.一种开发可移植软件应用的方法,包括:
确定软件开发项目,所述软件开发项目用于在应用开发期间在多个客户端平台上执行;
在所述应用开发期间在所述项目加入画面,所述画面定义为通用画面和平台特定画面中的一个;
在所述应用开发期间在所述画面加入组件,所述组件定义为通用组件和平台特定组件中的一个;
当所述画面被定义为通用画面而加入了一或多个平台特定组件时,在所述应用开发期间重新定义所述画面为平台特定画面;
在所述应用开发期间定义从所述画面到一或多个其他画面的应用程序流程;
为第一装置创建应用程序;
分析所述应用程序以部署到第二装置,包括确定所述应用程序依赖于所述第一装置但欠缺于所述第二装置的一个或多个功能;和
基于所述分析步骤和所述确定步骤,为用户提供移植可行性分析报告,
其中所述分析步骤进一步包括:
定义第一装置设定;
定义第二装置设定;
基于所述第一装置设定和所述第二装置设定的比较,通过进行移植可行性检测来分析所述应用程序,以部署到所述第二装置,其中所述移植可行性检测包括:
比较所述第一装置设定和所述第二个装置设定,以确定所述第一装置及所述第二装置的区别;
确定所述可移植软件应用是否依赖于任何虽存在于所述第一装置,但有别或欠缺于所述第二装置的功能;及
识别所述平台特定组件的用途。
2.如权利要求1所述的方法,其中所述确定软件开发项目的步骤包括为所述项目设定开发语言。
3.如权利要求1所述的方法,其中所述画面通过选择既存画面被加入所述项目。
4.如权利要求1所述的方法,其中所述画面利用模板创建。
5.如权利要求1所述的方法,其中所述组件通过从工具面板选择所述组件加入到所述画面。
6.如权利要求1所述的方法,进一步包括为一或多个与所述组件关联的控件设置属性。
7.如权利要求6所述的方法,进一步包括确定所述控件是否为平台特定控件。
8.如权利要求1所述的方法,其中所述确定软件开发项目的步骤包括定义一系列呈现给用户的画面。
9.如权利要求1所述的方法,进一步包括通过识别平台而向所述组件提供功能,所述平台由所述组件支持。
10.一种开发可移植软件应用的系统,包括:
项目确定模块,其用于确定软件开发项目,所述软件开发项目用于在应用开发期间在多个客户端平台上执行;
画面加入模块,其用于在所述应用开发期间在所述项目加入画面,其中所述画面定义为通用画面和平台特定画面中的一个;
组件加入模块,其用于在所述应用开发期间在所述画面加入组件,其中所述组件定义为通用组件和平台特定组件中的一个;
重新定义模块,其用于当所述画面被定义为通用画面而加入了一或多个平台特定组件时,在所述应用开发期间重新定义所述画面为平台特定画面;及
应用程序流程定义模块,其用于在所述应用开发期间定义从所述画面到一或多个其他画面的应用程序流程;和
可行性模块,其配置以为第一装置创建应用程序,分析所述应用程序以部署到第二装置,确定所述应用程序依赖于所述第一装置但欠缺于所述第二装置的一个或多个功能,以及基于分析和确定的结果为用户提供移植可行性分析报告,
其中,分析所述应用程序包括:
定义第一装置设定;
定义第二装置设定;
基于所述第一装置设定和所述第二装置设定的比较,通过进行移植可行性检测来分析所述应用程序,以部署到所述第二装置,其中所述移植可行性检测包括:
比较所述第一装置设定和所述第二个装置设定,以确定所述第一装置及所述第二装置的区别;
确定所述可移植软件应用是否依赖于任何虽存在于所述第一装置,但有别或欠缺于所述第二装置的功能;及
识别所述平台特定组件的用途。
11.如权利要求10所述的系统,其中所述项目确定模块可用于为所述软件开发项目设定开发语言。
12.如权利要求10所述的系统,其中所述画面加入模块可通过选择既存画面向所述项目加入所述画面。
13.如权利要求10所述的系统,其中所述组件加入模块可通过从工具面板里选择所述组件向所述画面加入所述组件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8187208P | 2008-07-18 | 2008-07-18 | |
US61/081,872 | 2008-07-18 | ||
US12/335,136 US8769553B2 (en) | 2008-07-18 | 2008-12-15 | Deploy anywhere framework for heterogeneous mobile application development |
US12/335,136 | 2008-12-15 | ||
PCT/US2009/004078 WO2010008535A2 (en) | 2008-07-18 | 2009-07-15 | Design once, deploy any where framework for heterogeneous mobile application development |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102160037A CN102160037A (zh) | 2011-08-17 |
CN102160037B true CN102160037B (zh) | 2015-04-22 |
Family
ID=41531413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980136587.6A Active CN102160037B (zh) | 2008-07-18 | 2009-07-15 | 只需设计一次就能在任何平台应用的移动应用开发框架 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8769553B2 (zh) |
EP (1) | EP2327018A4 (zh) |
CN (1) | CN102160037B (zh) |
WO (1) | WO2010008535A2 (zh) |
Families Citing this family (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100287525A1 (en) * | 2009-05-07 | 2010-11-11 | Microsoft Corporation | Extension through visual reflection |
US8898629B2 (en) | 2011-04-06 | 2014-11-25 | Media Direct, Inc. | Systems and methods for a mobile application development and deployment platform |
US8898630B2 (en) | 2011-04-06 | 2014-11-25 | Media Direct, Inc. | Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform |
US8978006B2 (en) | 2011-04-06 | 2015-03-10 | Media Direct, Inc. | Systems and methods for a mobile business application development and deployment platform |
US9134964B2 (en) | 2011-04-06 | 2015-09-15 | Media Direct, Inc. | Systems and methods for a specialized application development and deployment platform |
WO2012140564A1 (en) * | 2011-04-11 | 2012-10-18 | Rakesh Sharrma | System and method for mobile application development |
CN102231106A (zh) * | 2011-05-27 | 2011-11-02 | 王志勇 | 实现移动通用开发平台应用代码生成的方法 |
CN103135979B (zh) * | 2011-12-05 | 2016-07-06 | 中国移动通信集团广东有限公司 | 终端应用的生成方法、装置及系统 |
US8856729B2 (en) * | 2011-12-23 | 2014-10-07 | Airstrip Ip Holdings, Llc | Systems and methods for developing multi-platform applications for computing devices |
US20140053126A1 (en) * | 2012-02-13 | 2014-02-20 | Mark A. Watson | Integrated mobile application development platform |
US9936329B2 (en) * | 2012-03-09 | 2018-04-03 | Nokia Technologies Oy | Methods, apparatuses, and computer program products for operational routing between proximate devices |
US20130263098A1 (en) * | 2012-03-29 | 2013-10-03 | Pawel Piotr Duda | Method and system for testing of mobile web sites |
TWI496078B (zh) * | 2012-05-18 | 2015-08-11 | Heimavista Inc | 跨系統平台微型應用程式之建置系統、建置方法 |
US8813028B2 (en) | 2012-07-19 | 2014-08-19 | Arshad Farooqi | Mobile application creation system |
US9038019B2 (en) | 2013-02-05 | 2015-05-19 | Sap Se | Paige control for enterprise mobile applications |
CN103150166B (zh) * | 2013-03-08 | 2017-02-08 | 深圳市奇维百纳网络有限公司 | 一种与设备同步的自助创建移动应用程序的方法 |
US20140281886A1 (en) | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using website content |
US20150081363A1 (en) * | 2013-06-07 | 2015-03-19 | TechCrowd Services, Inc. | Group-Oriented Software Development |
US9239707B2 (en) | 2013-06-28 | 2016-01-19 | Successfactors, Inc. | Model framework for applications |
US9258668B2 (en) * | 2013-07-31 | 2016-02-09 | Sap Se | Mobile application framework extensibiilty |
US9197501B2 (en) | 2013-08-09 | 2015-11-24 | Sap Se | Zero-step auto-customization of mobile applications |
US9509761B2 (en) * | 2013-10-23 | 2016-11-29 | Sap Se | Open user interface |
US9426254B2 (en) | 2013-11-22 | 2016-08-23 | Sap Se | Methods and systems for building a software appliance |
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US9858174B2 (en) * | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US9851968B2 (en) * | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
US9826045B2 (en) | 2014-09-26 | 2017-11-21 | Oracle International Corporation | Efficient means to test server generated applications on mobile device |
US10290133B2 (en) | 2014-09-26 | 2019-05-14 | Oracle International Corporation | High fidelity interactive screenshots for mobile applications |
US10007493B1 (en) * | 2014-12-30 | 2018-06-26 | EMC IP Holding Company LLC | Event based validation |
US10692098B2 (en) * | 2015-05-12 | 2020-06-23 | Oath Inc. | Predicting content consumption |
US9851953B2 (en) | 2015-06-29 | 2017-12-26 | Oracle International Corporation | Cloud based editor for generation of interpreted artifacts for mobile runtime |
US11102313B2 (en) | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10013668B2 (en) | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10558345B2 (en) | 2015-11-16 | 2020-02-11 | Sap Se | User interface development in a transcompiling environment |
US10748312B2 (en) | 2016-02-12 | 2020-08-18 | Microsoft Technology Licensing, Llc | Tagging utilizations for selectively preserving chart elements during visualization optimizations |
US10347017B2 (en) * | 2016-02-12 | 2019-07-09 | Microsoft Technology Licensing, Llc | Interactive controls that are collapsible and expandable and sequences for chart visualization optimizations |
TWI590088B (zh) * | 2016-03-23 | 2017-07-01 | 李佰聰 | 結合程式包創設新行動應用程式的方法、行動裝置及系統 |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10581820B2 (en) | 2016-05-11 | 2020-03-03 | Oracle International Corporation | Key generation and rollover |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US10425386B2 (en) | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10735394B2 (en) | 2016-08-05 | 2020-08-04 | Oracle International Corporation | Caching framework for a multi-tenant identity and data security management cloud service |
US10255061B2 (en) | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10263947B2 (en) | 2016-08-05 | 2019-04-16 | Oracle International Corporation | LDAP to SCIM proxy service |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
US10585682B2 (en) | 2016-08-05 | 2020-03-10 | Oracle International Corporation | Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service |
US10505941B2 (en) | 2016-08-05 | 2019-12-10 | Oracle International Corporation | Virtual directory system for LDAP to SCIM proxy service |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
JP7018437B2 (ja) | 2016-09-16 | 2022-02-10 | オラクル・インターナショナル・コーポレイション | マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービスのためのテナントおよびサービス管理 |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
US10261836B2 (en) | 2017-03-21 | 2019-04-16 | Oracle International Corporation | Dynamic dispatching of workloads spanning heterogeneous services |
US10454915B2 (en) | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
US10348858B2 (en) | 2017-09-15 | 2019-07-09 | Oracle International Corporation | Dynamic message queues for a microservice based cloud service |
US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | Oracle International Corporation | Rest-based declarative policy management |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust for a multi-tenant identity cloud service |
US10798165B2 (en) | 2018-04-02 | 2020-10-06 | Oracle International Corporation | Tenant data comparison for a multi-tenant identity cloud service |
US11165634B2 (en) | 2018-04-02 | 2021-11-02 | Oracle International Corporation | Data replication conflict detection and resolution for a multi-tenant identity cloud service |
US11258775B2 (en) | 2018-04-04 | 2022-02-22 | Oracle International Corporation | Local write for a multi-tenant identity cloud service |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
US10764273B2 (en) | 2018-06-28 | 2020-09-01 | Oracle International Corporation | Session synchronization across multiple devices in an identity cloud service |
US10901593B2 (en) * | 2018-09-21 | 2021-01-26 | Salesforce.Com, Inc. | Configuring components in a display template based on a user interface type |
US11693835B2 (en) | 2018-10-17 | 2023-07-04 | Oracle International Corporation | Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service |
US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
US11651357B2 (en) | 2019-02-01 | 2023-05-16 | Oracle International Corporation | Multifactor authentication without a user footprint |
US11061929B2 (en) | 2019-02-08 | 2021-07-13 | Oracle International Corporation | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
CN117520181B (zh) * | 2023-11-21 | 2024-05-14 | 北京领雁科技股份有限公司 | 一种业务流程的调试方法、装置、电子设备及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946485A (en) * | 1996-02-09 | 1999-08-31 | Intervoice Limited Partnership | Enhanced graphical development environment for controlling program flow |
US6342907B1 (en) * | 1998-10-19 | 2002-01-29 | International Business Machines Corporation | Specification language for defining user interface panels that are platform-independent |
AU5288000A (en) | 1999-05-24 | 2000-12-12 | Matsushita Mobile Communications Development Corporation Of U.S.A. | A platform independent system of specifying an embedded user interface |
JP2002229783A (ja) * | 2001-01-31 | 2002-08-16 | Toshiba Corp | ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム |
US20040015811A1 (en) * | 2001-02-16 | 2004-01-22 | Freitas Nathanial X. | Method and apparatus for the creation of software applications |
GB0105583D0 (en) * | 2001-03-06 | 2001-04-25 | Sony Uk Ltd | Development apparatus and method of developing an interactive application |
US20030046438A1 (en) | 2001-08-31 | 2003-03-06 | O'donnell Mary E. | Portal for use in-transit with mobile platforms |
JP2003108373A (ja) * | 2001-09-28 | 2003-04-11 | Toshiba Corp | 汎用型ソフトウェア開発支援システム、汎用型ソフトウェア開発支援プログラム、およびそのシステムで用いられるソフトウェア部品 |
US7565647B2 (en) * | 2002-03-22 | 2009-07-21 | Sun Microsystems, Inc. | Markup compiler that outputs MIDlets |
JP4093033B2 (ja) * | 2002-12-02 | 2008-05-28 | 株式会社日立製作所 | サービス部品選択支援方法 |
US20040111518A1 (en) * | 2002-12-05 | 2004-06-10 | Schuyler Marc P. | Portability of computer system resources using transferable profile information |
US20080046557A1 (en) * | 2005-03-23 | 2008-02-21 | Cheng Joseph C | Method and system for designing, implementing, and managing client applications on mobile devices |
US20060236254A1 (en) * | 2005-04-18 | 2006-10-19 | Daniel Mateescu | System and method for automated building of component based applications for visualizing complex data structures |
US20070099658A1 (en) * | 2005-11-03 | 2007-05-03 | Blue Label Interactive | Systems and methods for developing, delivering and using video applications for a plurality of mobile platforms |
US20070100648A1 (en) * | 2005-11-03 | 2007-05-03 | Anthony Borquez | Systems and Methods for Delivering Content Customized for a Plurality of Mobile Platforms |
US7676786B2 (en) * | 2006-02-02 | 2010-03-09 | Research In Motion Limited | System and method and apparatus for using UML tools for defining web service bound component applications |
US7890853B2 (en) * | 2006-02-13 | 2011-02-15 | Nextair Corporation | Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity |
US8103865B2 (en) * | 2007-08-01 | 2012-01-24 | Phunware, Inc. | Server method and system for rendering content on a wireless device |
-
2008
- 2008-12-15 US US12/335,136 patent/US8769553B2/en active Active
-
2009
- 2009-07-15 CN CN200980136587.6A patent/CN102160037B/zh active Active
- 2009-07-15 EP EP09798283A patent/EP2327018A4/en not_active Ceased
- 2009-07-15 WO PCT/US2009/004078 patent/WO2010008535A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN102160037A (zh) | 2011-08-17 |
WO2010008535A2 (en) | 2010-01-21 |
US20100017812A1 (en) | 2010-01-21 |
EP2327018A2 (en) | 2011-06-01 |
US8769553B2 (en) | 2014-07-01 |
EP2327018A4 (en) | 2011-12-07 |
WO2010008535A3 (en) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102160037B (zh) | 只需设计一次就能在任何平台应用的移动应用开发框架 | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
KR101105177B1 (ko) | 사용자 인터페이스 컨텐츠 데이터용 데이터 컨테이너 | |
KR101807897B1 (ko) | 크로스―플랫폼 어플리케이션 프레임워크 | |
US11667033B2 (en) | Systems and methods for robotic process automation | |
US9021427B2 (en) | Conversion methods of applications of mobile devices and mobile devices and systems using the same | |
CN102646014A (zh) | 特定于上下文的用户界面 | |
JP2007510979A (ja) | 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法 | |
US20070260749A1 (en) | Configuring user interfaces in electronic devices | |
US8756407B2 (en) | Configuration rule prototyping tool | |
CN102542045A (zh) | 对于资源的统一访问 | |
CN111459539A (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
CN107179903B (zh) | 用于使用模型驱动开发来开发基于移动的应用的系统和方法 | |
CN110688145B (zh) | Android MVP代码自动生成方法、装置、介质、电子设备 | |
CN111784108B (zh) | 一种主数据管理平台的建模方法和装置 | |
CN110209569A (zh) | 接口测试方法、接口测试装置及存储介质 | |
US10387124B2 (en) | System and method for creating domain specific language | |
Del Sole | Microsoft computer vision APIs distilled: Getting started with cognitive services | |
CN107341106A (zh) | 应用程序兼容性检测方法、开发终端及存储介质 | |
KR101488815B1 (ko) | 메뉴 테스트용 스크립트 생성 장치, 이를 포함하는 메뉴 테스트 자동화 시스템, 및 그 방법 | |
CN110688105A (zh) | 算法集成验证部署的可视化平台及其服务方法 | |
KR102385381B1 (ko) | 카메라 이펙트를 위한 스크립트 생성 방법 및 시스템 | |
WO2021249118A1 (zh) | 生成、注册ui服务包、以及加载ui服务的方法及装置 | |
KR20080018025A (ko) | 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 | |
KR20220019488A (ko) | 어플리케이션 개발을 위한 멀티채널통합플랫폼 저작장치 및 저작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |