CN105637478A - 原生移动应用代码的计算机辅助开发 - Google Patents
原生移动应用代码的计算机辅助开发 Download PDFInfo
- Publication number
- CN105637478A CN105637478A CN201480057398.0A CN201480057398A CN105637478A CN 105637478 A CN105637478 A CN 105637478A CN 201480057398 A CN201480057398 A CN 201480057398A CN 105637478 A CN105637478 A CN 105637478A
- Authority
- CN
- China
- Prior art keywords
- application
- mobile
- list
- mobile equipment
- message
- 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.)
- Granted
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/36—Software reuse
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
用于计算机辅助软件应用开发的方法、系统和计算机程序产品。在接收到移动设备标识符和诸如应用标识符、对象模型和表单标识符的附加信息时,合成器开始,然后分析附加信息,以确定要在移动设备上实现什么样的表单。进一步的合成处理包括分析表单,以确定要在识别出的移动设备上实现的函数集。使用确定的函数集,从储存库中检索原生应用代码模块。检索出的原生应用代码模块对应于函数集。代码模块被集成到一起,以生成原生移动应用,它可以被部署到移动设备。来自移动设备的消息被截获,以便模拟后端应用的表单处理。使用表单的任何后端应用都可以被原生移动应用访问。
Description
技术领域
本公开内容涉及计算机辅助软件应用开发领域,并且更具体而言涉及用于基于应用对象模型自动合成原生(native)移动应用的技术。
背景技术
移动设备无处不在,并且用户需要以与他们使用桌面应用的方式相同或相似的方式来使用他们的移动设备。对于移动应用越来越多和越来越快部署的需求是迫切的,但还没有出现合成在移动设备上运行的原生应用的容易或标准的方式。传统技术包括创建在移动设备的浏览器中运行的应用插件,但是这种传统方法无法产生在设备本地运行的移动应用(例如,不依赖于浏览器)。在其它传统情况下,甚至在移动设备支持可下载的应用或小应用程序的情况下,以及甚至在这种移动应用包括使用除浏览器可用的资源之外的移动设备系统的情况下,特定于每个移动设备和/或每个操作系统的原生应用的手动编码或者应用或插件的开发太过麻烦。需要以与桌面应用操作的方式相似或相同的方式解决以在异构移动平台上运行但是又与后端(例如,基于服务器的)应用接口为目标的应用的快速开发和部署的问题的技术。
以上提到的传统方法当中没有一个实现本文公开的用于基于应用对象模型自动合成原生移动应用的技术的能力。因此,需要改进。
发明内容
本公开内容提供了适于解决以上提到的关于传统方法的问题的改进方法、系统和计算机程序产品。更具体而言,本公开内容提供了在用于基于应用对象模型自动合成原生移动应用的方法、系统和计算机程序产品中使用的技术的详细描述。要求保护的实施例解决以在异构移动平台上运行为目标的应用的快速开发和部署的问题。更具体而言,一些权利要求针对用于合成原生代码的集合以符合给定对象模型的方法,这些权利要求推进了用于解决以在异构移动平台上运行为目标的应用的快速开发和部署的问题的技术领域,并且推进了外围技术领域。一些权利要求改善了在所公开的环境中多个系统的功能。
在接收到移动设备标识符和诸如应用标识符、对象模型和表单标识符的附加信息时,合成器开始,然后分析附加信息,以确定要在识别出的类型的移动设备上实现什么样的一个或多个表单。进一步的合成处理包括分析(一个或多个)表单,以确定要在移动设备上实现的函数集。使用确定的函数集,从储存库中检索原生应用代码模块。检索到的原生应用代码模块对应于函数集(例如,CREATE、READ、UPDATE、DELETE)。然后,代码模块被组装,以生成原生移动应用,它可以被部署到移动设备。服务器函数(例如,中间件)截获来自移动设备的消息,以便模拟后端应用的表单处理。使用表单的任何后端应用都可以被原生移动应用访问。
一些实施例实现接收移动设备标识符和包括应用标识符、对象模型和表单标识符当中至少一种的信息,分析信息以确定要在移动设备上实现的至少一个表单,分析表单以确定要在移动设备上实现的函数集,从原生应用代码模块的储存库中检索与该函数集的至少一部分对应的多个选定原生应用代码模块,以及组装包括该表单的至少一部分和选定原生应用代码模块当中至少一些的移动应用。
在一方面,对象模型包括字段、函数和消息当中至少一种。在另一方面,选定的原生应用代码模块用来发起创建操作、替换操作、更新操作和删除操作当中至少一种。
一些实施例还包括将移动应用部署到对应于移动设备标识符的移动设备上,并且一些实施例还包括根据JSON消息生成Java类。
在一些实施例中,选定原生应用代码模块当中至少一个实现形成请求消息,并且在一些实施例中,请求消息包括简单对象访问协议(SOAP)请求,并且在一些实施例中,请求消息包括表示性状态转移抽象(REST)请求,并且在其它实施例中,请求消息包括密码和/或图像捕获文件。
根据现有后端应用的规范,所指定的应用的数据模型可以是已知的,并且在表单中使用的字段也可以是已知的。合成器模块从用户接收规范并且合成原生移动应用代码模块的集合。合成器模块可以包括用于分析规范的解析器模块,以及可以访问包括框架标准、所支持的接口和部件定义等的框架定义和/或可以访问原生应用代码模块的储存库以及由后端应用和/或消息使用的表单和字段的储存库的查询生成器。合成器模块还可以包括代码集成模块,以方便两个或更多个原生应用代码模块的组装。
在一些实施例中,规范(例如,来自规范模块)足以让合成器模块检索用于生成Java类的消息(例如,利用可配置的类生成器)。这种技术在下面进一步讨论。规范模块用来帮助用户指定从其可以知道数据模型的后端应用。在示例性情况下,用于指定的应用的表单集可以是已知的(例如,基于约定)或可以被明确指定。表单本身可以用标记语言(例如,HTML)进行编码。表单使用字段,并且在数据模型中使用的任何字段都可以被提取,并且提取出的字段可以被映射到从框架操作(例如,创建、读取、更新、删除操作)的库中选择的对应操作。框架操作的库可以包含用于移动设备的原生代码,并且可以特定于特定的移动设备或操作系统。用于移动设备的这种原生代码可以参数化和/或可以被定义为以先验已知的方式进行交互。
一旦框架操作已经被选择并参数化,代码就被合成,以提供选定框架操作之间的关系(例如,调用、回调、路径)。另外的原生代码可以被添加,以生成移动设备应用,使得代码被加载到移动设备上并被测试。移动设备应用可在不同条件下并在各种设置中进行测试,并且测试结果会通过另一次迭代影响进展,以添加要结合到合成的应用中的另外的功能。
合成的一些方面和结果产生的原生移动设备应用的一些方面部分地依赖于框架的特性,并与框架交互。如下讨论一组示例特性和交互。
以上提到的框架可以采取后端框架(例如,移动服务框架)的形式,后端框架进而由服务代理、Java应用服务器(JAS)和任何数量的应用或应用的分组构成。应用基本上与服务于桌面环境的后端应用相同。例如,许多后端应用是可配置的(例如,利用配置数据)并经由表单(例如,表单)与用户交互,这些表单支持一组良好定义的表单操作(例如,参见操作),诸如创建、读取、更新和删除。这些操作当中任何一个、一些或全部用来访问数据库引擎。
移动设备包括被配置为层的原生移动设备用户接口(UI),该层访问移动设备应用的任何合成实例。移动设备应用进而由表示层和数据控制层组成。表示层和数据控制层内的模块之间的交互遵守良好定义的规则,诸如便于异步通信的握手交换和/或诸如利用共同可访问的数据结构的数据的交换,其中所述数据结构是根据移动设备和/或其操作系统的本地方面定义的。
在示例性情况下,移动设备经无线网络直接与应用系统的网络接口通信。在其它情况下,移动设备经无线网络直接与中间件通信。
移动应用交互包括中间件部件(例如,中间件)。中间件进而可以包括用来便于与移动设备往返通信的操作单元。例如,中间件部件可以实现web服务器,并且这种web服务器可以对移动设备执行不需要与后端直接接口的各种服务。严格地作为一个这样的例子,中间件部件可以包括一系列服务处理器(例如,表单服务请求处理器、令牌服务请求处理器、媒体对象请求处理器,等等)。令牌服务请求处理器可以处理令牌,令牌又是指密码或支付或者任何形式的加密或未加密的数据。媒体对象请求处理器便于媒体对象的传送和格式化。例如,媒体对象处理器可以对移动设备执行多个异步访问或请求,以便向后端应用传送大媒体文件(例如,高分辨率图像捕获)。
由中间件部件提供的服务不限定于如前面所讨论的仅向移动设备提供服务。在一些情况下,中间件部件可以向任何外部系统提供服务。
在这种环境中,中间件部件处理到移动设备和应用系统以及来自移动设备和应用系统的消息。在示例性实施例中,消息遵循预定义的协议。在一些情况下,消息被格式化成与预定义的消息规范相称的消息,有可能在消息的有效载荷中包括预定义的对象或其部分,诸如根据JavaScript对象符号(JSON)。
移动设备应用消息交换机制包括JSON消息交换,JSON消息交换包括请求和响应。代码的开发工作和合成可以基于遵循某些约定的现有应用的对象模型而继续。例如,一个约定要求访问期望的移动应用的数据模型表示。如果给定这种访问,则很少或没有商业模型类型逻辑需要为了实现原生移动应用而被编码。这种移动设备应用可以利用原生代码来配置,以针对给定的数据模型执行创建、读取、更新和删除(CRUD)操作。合成器模块,有可能利用由开发人员提供的规范和/或指示,可以合成或创建:Java类(例如,以便把将由表单请求处理器返回的JSON消息解串为Java对象)、被配置为将对象绑定到用户接口的特定方面(例如,表单字段)的数据绑定模块(例如,数据控制模块)、向服务代理作出执行或启动选定应用(例如,在服务器环境中)的请求的Java类(例如,所示出的Java数据控制类)。
Java对象经由数据绑定模块被绑定到UI。合成器模块生成划分,以便组装另外的部件,诸如用户接口部件(例如,如可以在表示层中实现的),以及诸如在由移动应用实现的页面之间导航的导航机构。
然后,合成过程由移动应用开发人员的迭代组成,以便使用合成能力来引导移动应用代码的生成。使用合成能力允许开发人员创建独立于平台的移动设备应用。严格地作为一个例子,移动设备可以由移动设备标识符(例如,iOS或Android或Windowsmobile,等等)来识别,并且原生移动设备代码可以被检索和/或组装,和/或为指定的设备生成(例如,基于移动设备标识符)。
移动服务框架消息交换机制包括JSON交换,其中交换的消息由移动服务框架生成和/或消费。如所示出的,移动服务框架包括多种预打包技术的组合,它们一起构成可被用作让开发人员快速开发原生移动应用的构建块的框架。服务代理用作消息操纵和流控制,并充当抽象层(例如,只暴露某些函数集)。服务代理可以被划分为若干个分区,每个分区专用于处理某些类型的请求。严格地作为例子,所示出的服务代理包括表单服务请求处理器、令牌服务请求处理器和媒体对象请求处理器。这些请求处理器便于执行应用层函数作为服务。第二,该例包括Java应用服务器(JAS)。如所示出的,JAS被修改,以经由请求和响应协议处理来自服务代理的请求。第三,该例包括一个或多个后端应用。
在示例性开发环境中,移动服务框架的配置是由二进制代码格式(例如,.jar文件)的可重用预打包特征的可用性来促进的,例如,可用.jar文件提供登录表单。示例性开发环境还可以包括创建特定于给定JSON消息的Java类的可配置类生成器的一个或多个实例。这些类被用来例如基于移动应用的请求将由服务代理返回的JSON消息解串成Java对象。
由移动服务框架和服务代理提供的服务不限于仅如本文前面所讨论的向移动设备提供服务。在一些情况下,移动服务框架和服务代理可以向任何外部系统提供服务。
用户随时随地(例如,从本地环境之外)需要访问企业应用的功能。这种情况转化成对提供良好开发的商业应用的用户需求,有时需要非常复杂的业务逻辑让外部系统可用。这种外部系统可以被体现为以上提到的移动设备当中任何一种,或者外部系统可以是辅助处理器,该辅助处理器可以是或可以不是移动设备。将整个应用出口到外部系统不是成本高效的(或实际的),并且仅仅将用户接口从桌面出口到外部系统的传统尝试也是有缺陷的。后一种方法已经失败,至少因为部署者常常希望仅使得企业应用的功能的子集在外部系统上可用(例如,出于安全性和/或性能原因)。
在其中一个或多个外部系统需要与原生(非外部)系统交互的环境中,接口常常是利用要求特定接口产生和消费数据的不同标准开发的。需要在原生应用与外部系统之间创建抽象层,抽象层允许实现不同标准和/或实现多个内部接口的外部接口。当原生系统经历升级(例如,代码改变)或者任何接口技术改变时,这个抽象层减少对外部系统的影响。
中间件包括服务代理的实例。服务代理实现对应用的抽象层,并且被配置为根据后端应用的数据模型执行任何形式的改变、读取、更新和删除操作。
如所示出的,利用对JAS服务器的基于servlet的调用,该解决方案支持表单服务请求(参见表单服务请求处理器)、令牌服务请求(参见令牌服务请求处理器)和媒体对象服务请求(参见媒体对象请求处理器)。服务代理是可扩展的,并且在这种需求出现时支持持续的、正在进行的开发和功能被添加。
另外的划分是合理的。例如,服务代理可以从外部系统接收数据(例如,与原生应用的表单字段对应的数据)并且在原生系统上处理那个数据,就好像数据是本地接收的(例如,接收与原生应用的表单字段对应的数据)。这种操作可以利用本文公开的表单服务的实施例来实现,以便从外部系统执行面向表单的操作。
如在前面的讨论中提到的,服务代理可以被扩展或增强,以消费前所未有的众多业务服务请求。所述增强可以包括简单对象访问协议–SOAP(例如,参见SOAP请求)的全部或部分的实现,和/或所述增强可以包括表示性状态转移抽象–REST(参见REST请求)的全部或部分或未来的协议的实现,使得外部系统可以利用这些协议当中任意一种(或其任意组合)与服务代理接口。
除了充当所示应用与其它当前和潜在外部系统之间的抽象层,服务代理还可以被启用以提供会话管理、高速缓存、批请求的支持、以及安全性改进。由抽象层提供的功能的处理的一些方面可以涉及由后端系统进行的处理。例如,servlet调用可能导致Java服务器发起表单服务请求。或者,例如,SOAP调用可能发起可扩展逻辑中的处理。
如上面所提到的,用于指定的应用的表单集可以是已知的(例如,基于约定)。另外,如果表单是已知的,则字段可以是已知的。并且,给定字段集,对应操作的集合可以是已知的,并且给定字段集,向后端应用携带字段数据和从后端应用携带字段数据的消息集也可以是已知的。在许多情况下,仅一些字段需要被移动应用处理(例如,仅字段和/或对应操作的子集需要由后端应用支持)。
如所示出的,对象模型层次结构可以被组织成包括应用(例如,参见应用集)的一个或多个实例,这些应用包含多个函数(参见函数集),这些函数通过字段(参见字段集)与用户交互,并且字段可以与操作(参见操作集)具有一对一或一对多的关系。任何应用或函数或字段都能发出消息(参见消息)。其它层次结构是可能的,并且一些组织不是严格分层的。
映射关系(例如,如从对象模型可取得的)可以定义表单与操作的任何实例和/或表单元数据之间的任意数量的关系404。表单元数据可以使用任何已知的技术(例如,利用XML、利用BNF,等等)编码。严格地作为说明性实例,表单元数据可以由与相应表单部件(例如,函数、操作、字段、网格、按钮,等等)对应的XML元素组成。表单元数据可以描述表单和/或其部件的结构和任何其它方面。
如所示出的,关系将表单映射到XML元素。操作可以具有字段的任意数量的相关联实例。关系将操作映射到XML元素。XML元素可以包括任意数量的各种属性(例如,类型,等等)。关系可以将字段框中给出的字段映射到XML元素。XML元素可以包括任意数量的各种属性(例如,id、标签、数据类型,等等)。关系可以将字段标签(例如,市,等等)映射到XML属性(例如,标签,等等)。关系可以利用所示出的XML字段元素将字段值映射到XML属性(例如,数据类型,等等)。
其它实施例可以直接以JSON格式而不是XML格式产生映射。在一些情况下,关系包括利用对象模型到/来自操作的映射,或者数据结构或硬编码的映射。运行时过程识别正在运行的表单(例如,经由表单标识符,或经由引用),并且基于识别出的表单中使用的部件(例如,日期字段、下拉框,网格行,等等),产生这个表单的JSON表示。
合成器模块被给予后端应用的标识。该应用使用可以由对象模型确定的表单集。如上面所提到的,只有一些字段需要由移动应用进行处理。字段可以明确地由字段名称指定,或者可以隐含地由从其提取函数的应用的规范表示,或者可以隐含地由函数集的规范指定。在一些情况下,选定函数的选择和/或定义用来指定(例如,隐含地)要使用的字段。当所需的字段和/或函数是已知的时候,对应消息的集合可以是已知的。现在移动设备应用的结构是已知的,并且代码可以被映射到原生移动应用代码模块的储存库和从原生移动应用代码模块的储存库中选择。此类原生移动应用代码模块利用上面提到的技术被组装,并且移动应用代码模块代码连同所生成的代码(例如,从类生成器发出的代码)和/或任何其它代码(例如,合成的代码)可以在移动终端上执行,并且可以执行测试。
当合成器用户定义UI布局、将控件绑定到数据控制器并定义页面导航时,一个流程开始。当合成器用户基于数据控制类自动生成数据控件,其后数据控件自动保持与数据控制类同步时,另一个流程开始。当合成器用户编码使用应用执行业务逻辑所需的属性和函数的接口规则时,又一个流程开始。接口规则用来存储属性并经由服务代理调用对应的后端应用,以执行用于移动应用的必要业务逻辑。
在一些情况下,合成器用户的工作流程包括修改正被移动应用使用的底层后端应用,以满足定制需求。
结果生成的移动应用支持一系列使用模型,例如,给定“通过搜索类型‘C’为客户搜索地址簿”的用例。初始操作可以是响应于用户动作(例如,在用户将“C”输入到UI文本框的情况下)。下一个操作可以包括系统响应,其中基于开发人员已经在数据控件与UI的文本控件之间设置的绑定通过数据控件传递数据。系统响应还可以包括操作,其中数据控制模块调用数据控制对象的设置器来设置其搜索属性。这种响应可以基于系统生成的数据控件与数据控制类之间的绑定。
在另一种情况下,所生成的移动应用支持在用户点击搜索按钮的用户动作时开始的使用模式,并且系统通过基于开发人员已经建立的绑定自动执行数据控制类的搜索方法来响应。例如,数据控制类可以将参数(搜索类型、令牌、要调用的E1表单,等等)加载到JSON消息中,然后串行化JSON消息并对服务代理作出请求。服务代理监视请求并转发到JAS服务器上,然后JAS服务器运行或调用该应用。
另一个流程基于被给予以用于执行的参数创建表单及其数据的JSON数据表示,然后将数据返回到服务代理。服务代理将数据传递回移动应用,于是移动应用将数据解串成支持性预生成Java对象。支持性JSONJava对象经由数据控制类被绑定到数据控件,从而方便数据控制器能够基于绑定将数据传递到UI控件。
本公开内容的各方面、目的以及优点的更多细节在下面并在具体实施方式、附图和权利要求中描述。前面对背景技术的一般性描述和下面的具体实施方式都是示例性和说明性的,而且并不意在限制权利要求的范围。
附图说明
以下描述的附图仅用于说明的目的。附图并不意在限制本公开内容的范围。
图1A例示根据一些实施例的用于基于应用对象模型自动合成原生移动应用的环境。
图1B1绘出了根据一些实施例的与后端应用系统的移动应用交互的例子。
图1B2绘出了根据一些实施例的与中间件和后端应用系统的移动应用交互的例子。
图2A绘出了根据一些实施例的移动设备应用消息交换机制的例子。
图2B绘出了根据一些实施例的被配置为与自动合成的原生移动应用交互的移动服务框架消息交换机制的例子。
图2C绘出了根据一些实施例的包括在中间件部件中实现的服务代理的多层环境,其中中间件部件被配置为与自动合成的原生移动应用交互。
图3绘出了根据一些实施例的服务代理的划分。
图4A绘出了根据一个实施例的用于在使用用于自动合成原生移动应用的合成工具时指定对象模型的样例层次结构。
图4B示出了根据一个实施例的取自被用于自动合成原生移动应用的合成工具使用的对象模型的表单和消息。
图5给出了根据一些实施例的基于应用对象模型自动合成原生移动应用而产生的操作流程。
图6是根据一个实施例的用于基于应用对象模型自动合成原生移动应用的系统的框图。
图7绘出了适于实现本公开内容的实施例和/或用在本文描述的环境中的部件的示例性架构。
具体实施方式
本公开内容的一些实施例解决以在异构移动平台上运行为目标的应用的行快速开发和部署的问题,并且一些实施例针对用于合成原生代码的集合以符合给定的对象模型的方法。更特别地,在本文和在附图中公开的是用于基于应用对象模型自动合成原生移动应用的示例性环境、方法和系统。
概述
本文所公开的合成系统仅利用预打包的代码模块(例如,面向表单和面向函数的代码模块)的选定集合来执行基于规范的合成。结果所得的移动设备应用部分地依赖于方便应用函数或操作(例如,发送和接收表单数据)的某个先验已知集合的使用的服务。在一些情况下,本文所公开的合成系统利用表单确定预打包的函数(例如,面向表单的函数)的选定集合来执行基于规范的合成。以上提到的服务实现操作的某个已知集合,诸如发送和/或接收表单数据,和/或创建、读取、更新或删除表单字段和/或数据库字段。
当开发软件时,向设计人员提供模块或库提高了抽象级别。事实上,当设计人员坚持诸如只使用预打包的模块或库的限制时,开发一个工作的软件通常更快。在考虑抽象的另外的方面时,如果设计人员自律地仅使用某些函数、操作或模块(例如,预先构建的函数和/或预先测试的操作),则错误或不适合的可能性大大降低。当基于规范和/或根据规则或限制集合成和/或组装代码时,不仅人类设计人员而且计算机辅助程序(例如,合成工具)都可以利用更少量可能性的好处。
定义
为了容易参考,在下面定义本说明书中使用的一些术语。所给出的术语及其各自的定义不严格受限于这些定义——术语可以进一步通过该术语在本公开内容中的使用来限定。
术语“示例性”在本文中用于指充当例子、实例或说明。本文中被描述为“示例性”的任何方面或设计都没有必要被认为比其它方面或设计优选或有利。更确切地说,词“示例性”的使用意在以具体的方式给出概念。
如在本申请和所附权利要求中所使用的,术语“或”意在指包含性“或”而不是排他性“或”。即,除非另外指定,或者从上下文中是明确的,否则“X采用A或B”意在指任何一种自然的包括性排列。即,如果X采用A、X采用B,或者X采用A和B二者,则在上述情况当中任意一个之下都满足“X采用A或B”。
如在本申请和所附权利要求中所使用的,除非另有指定或者从上下文中清楚是针对单数形式,否则冠词“a”一般应当被解释为指“一个或多个”。
现在详细地参考某些实施例。所公开的实施例并不意在成为权利要求的限制。
示例性实施例的描述
图1A例示用于基于应用对象模型的原生移动应用的自动合成的环境1A00。作为选项,环境1A00或者其任何方面的一个或多个实例或可以在本文描述的实施例的架构和功能的上下文中实现。而且,环境1A00或其任何方面可以在任何期望的环境中实现。
如所示出的,用户105在这种环境中交互,以指定现有“后端”应用(例如,参见规范模块120)。根据现有后端应用的规范,所指定的应用的数据模型可以是已知的,并且表单中使用的字段也可以是已知的。合成器模块110从用户接收规范并且合成原生移动应用代码模块的集合。合成器模块可以包括用于分析规范的解析器模块132、以及查询生成器133,查询生成器133可以访问包括框架标准、所支持的接口和部件定义等的框架定义,和/或可以访问原生应用代码模块150的储存库以及由后端应用和/或消息使用的表单和字段的储存库。合成器模块还可以包括代码集成模块134,以便于两个或更多个原生应用代码模块的组装。
在一些情况下,规范(例如,来自规范模块120)足以让合成器模块检索从其生成Java类的消息(例如,利用可配置的类生成器135)。这种技术在下面进一步讨论。规范模块120用来帮助用户指定可以从其得知数据模型的后端应用。在示例性情况下,用于指定的应用的表单集合可以是已知的(例如,基于约定)或者可以被明确指定。表单本身可以用标记语言(例如,HTML)进行编码。表单使用字段,并且在数据模型中使用的任何字段都可以被提取,并且提取出的字段可以被映射到从框架操作(例如,创建、读取、更新、删除操作)的库中选择的对应操作。框架操作的库可以包含用于移动设备的原生代码,并且可以特定于特定的移动设备或操作系统。用于移动设备的这种原生代码可以被参数化和/或可以被定义为以先验已知的方式进行交互。
一旦框架操作已经被选择并参数化,代码就被合成,以提供选定框架操作之间的关系(例如,调用、回调、路径)。另外的原生代码可以被添加,以生成移动设备应用,使得代码被加载到移动设备上并被测试。移动设备应用可在不同条件下并在各种设置中进行测试,并且测试结果会通过另一次迭代影响进展,以添加要结合到合成应用中的另外的功能。
合成的一些方面和结果产生的原生移动设备应用的一些方面部分地依赖于框架130的特性,并与框架130交互。下面讨论一组示例特性和交互。
图1B1绘出了与后端应用系统的移动应用交互1B100的例子,其中后端应用系统被配置为与合成的原生移动应用交互。作为选项,移动应用交互1B100或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,移动应用交互1B100或其任何方面可以在任何期望的环境中实现。
以上提到的框架可以采取后端框架的形式(例如,移动服务框架114),后端框架进而由服务代理、Java应用服务器(JAS)和任何数量的应用或应用的任何分组(例如,应用1011,应用1012,等等)构成。所述应用基本上与服务于桌面环境的后端应用相同。例如,许多后端应用是可配置的(例如,利用配置数据122)并经由表单(例如,表单116)与用户交互,所述表单支持一组良好地定义的表单操作(例如,参见操作118),诸如创建、读取、更新和删除。操作118当中任何一个、一些或全部用来访问数据库引擎126。
移动设备102包括被配置为层的原生移动设备用户接口(UI)104,该层访问移动设备应用106的任何合成实例。移动设备应用进而由表示层和数据控制层组成。表示层和数据控制层内的模块之间的交互遵守良好定义的规则,诸如便于异步通信的握手交换和/或诸如利用共同可访问的数据结构的数据的交换,所述数据结构是根据移动设备和/或其操作系统的本地方面定义的。
在示例性情况下,移动设备102经无线网络109直接与应用系统的网络接口(例如,利用网络接口1111和网络接口1112)通信。在其它情况下,移动设备102经无线网络109直接与中间件通信。关于图1B2示出并描述这种划分。
图1B2绘出了与后端应用系统的移动应用交互1B200的例子,其中后端应用系统被配置为与合成的原生移动应用交互。作为一个选项,移动应用交互1B200或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,移动应用交互1B200或其任何方面可以在任何期望的环境中实现。
所示出的移动应用交互1B200包括中间件部件(例如,中间件108)。中间件进而可以包括用来便于与移动设备往返通信的操作单元。例如,中间件部件可以实现web服务器,并且这种web服务器可以对移动设备执行不需要与后端直接接口的各种服务。严格地作为一个这样的例子,中间件部件可以包括一系列服务处理器(例如,表单服务请求处理器、令牌服务请求处理器、媒体对象请求处理器,等等)。令牌服务请求处理器可以处理令牌,令牌又是指密码或支付或者任何形式的加密或未加密的数据。媒体对象请求处理器便于媒体对象的传送和格式化。例如,媒体对象处理器可以对移动设备执行多个异步访问或请求,以便向后端应用传送大媒体文件(例如,高分辨率图像捕获)。
由中间件部件提供的服务不限定于如前面所讨论的仅向移动设备提供服务。在一些情况下,中间件部件可以向任何外部系统提供服务。关于图2C示出并讨论涉及外部系统的这种例子。
在这种环境中,中间件部件处理在移动设备和应用系统之间往返的消息。在示例性实施例中,消息遵循预定义的协议。在一些情况下,消息被格式化成与预定义的消息规范相称的消息,有可能在消息的有效载荷中包括预定义的对象或其部分,诸如根据JavaScript对象符号(JSON)。在以下图2A中示出并描述交换机制。图2A的具体例子指的是JSON消息传送,但其它消息传送协议、格式或符号是可能的。
图2A绘出了移动设备应用消息交换机制2A00的例子。作为选项,移动设备应用消息交换机制2A00或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,移动设备应用消息交换机制2A00或其任何方面可以在任何期望的环境中实现。
如图2A中所示,移动设备应用消息交换机制包括JSON消息交换,JSON消息交换包括请求和响应(例如,请求209、响应211,等等)。代码的开发工作和合成可以基于遵循某些约定的现有应用的对象模型而继续。例如,一种约定需要访问期望的移动应用的数据模型表示。如果给定这种访问,则很少或没有商业模型类型逻辑需要为了实现原生移动应用而被编码。这种移动设备应用可以利用原生代码来配置,以针对给定的数据模型执行创建、读取、更新和删除(CRUD)操作。合成器模块,有可能利用由开发人员提供的规范和/或指示,可以合成或创建:Java类(例如,以便把将由表单请求处理器返回的JSON消息解串为Java对象)、被配置为将对象绑定到用户接口的特定方面(例如,表单字段)的数据绑定模块(例如,数据控制模块244)、向服务代理作出执行或启动选定应用(例如,在服务器环境中)的请求的Java类(例如,所示出的Java数据控制类242)。
本申请的一些实施例中的某些方面涉及在于2014年2月12日提交且标题为“RULE-BASEDAUTOMATICCLASSGENERATIONFROMAJSONMESSAGE”的美国专利申请No.14/179,548(代理人案号:ORA140360-US-NP)中所公开的素材。
Java对象经由数据绑定模块被绑定到UI。合成器模块生成划分,以便组装另外的部件,诸如用户接口部件(例如,如可以在表示层246中实现的),以及诸如在由移动应用实现的页面之间导航的导航机制。
然后,合成过程由移动应用开发人员的迭代组成,以便使用合成能力来引导移动应用代码的生成。使用合成能力允许开发人员创建独立于平台的移动设备应用。严格地作为一个例子,移动设备可以由移动设备标识符(例如,iOS或Android或Windowsmobile,等等)来识别,并且原生移动设备代码可以被检索和/或组装,和/或为指定的设备生成(例如,基于移动设备标识符)。
图2B绘出了被配置为与自动合成的原生移动应用进行交互的移动服务框架消息交换机制2B00的例子。作为选项,移动服务框架消息交换机制2B00或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。另外,移动服务框架消息交换机制2B00或其任何方面可以在任何期望的环境中实现。
如图2B中所示,移动服务框架消息交换机制包括JSON交换,在JSON交换中交换的消息由移动服务框架114生成和/或消费。如所示出的,移动服务框架114包括多种预打包技术的组合,所述预打包技术一起构成可被用作让开发人员快速开发原生移动应用的构建块的框架。在图2B的例子中,移动服务框架包括几个部件。首先,服务代理210用作消息操纵和流控制,并充当抽象层(例如,只暴露某些函数集)。服务代理可以被划分为若干个分区,每个分区专用于处理某些类型的请求。严格地作为例子,所示的服务代理210包括表单服务请求处理器121、令牌服务请求处理器214和媒体对象请求处理器216。这些请求处理器便于执行应用层函数作为服务。第二,该例子包括Java应用服务器(JAS)。如所示出的,JAS218被修改,以经由请求204和响应206协议处理来自服务代理210的请求。第三,该例子包括一个或多个后端应用(例如,应用1011、应用101N)。
在示例性开发环境中,移动服务框架114的配置是由二进制代码格式(例如,.jar文件)的可重用预打包特征的可用性来促进的,例如,可用.jar文件提供登录表单。示例性开发环境还可以包括创建特定于给定JSON消息的Java类的可配置类生成器135的一个或多个实例。这些类被用来例如基于移动应用的请求将由服务代理返回的JSON消息解串成Java对象。
由移动服务框架114和服务代理210提供的服务不限于仅如本文前面所讨论的向移动设备提供服务。在一些情况下,移动服务框架和服务代理可以向任何外部系统提供服务。关于图2C示出并讨论涉及外部系统的这种例子。
图2C绘出了包括在中间件部件中实现的服务代理的多层环境2C00,其中中间件部件被配置为与自动合成的原生移动应用进行交互。作为选项,多层环境2C00或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,多层环境2C00或其任何方面可以在任何期望的环境中实现。
用户随时随地(例如,从本地环境之外)需要访问企业应用的功能。这种情况转化成提供良好开发的商业应用的用户需求,有时需要非常复杂的业务逻辑让外部系统202可用。这种外部系统202可以被体现为以上提到的移动设备当中任何一种,或者外部系统可以是辅助处理器,该辅助处理器可以是或可以不是移动设备。将整个应用出口到外部系统不是成本高效的(或实际的),并且仅仅将用户接口从桌面出口到外部系统的传统尝试也是有缺陷的。后一种方法已经失败,至少因为部署者常常希望仅使得企业应用的功能的子集在外部系统上可用(例如,出于安全性和/或性能原因)。
在其中一个或多个外部系统202需要与原生(非外部)系统交互的环境中,接口常常是利用需要特定接口来产生和消费数据的不同标准开发的。需要在原生应用与外部系统之间创建允许实现不同标准和/或实现多个内部接口的外部接口的抽象层。当原生系统经历升级(例如,代码改变)或者任何接口技术改变时,这个抽象层减少对外部系统的影响。
中间件108包括服务代理210的实例。服务代理实现对应用的抽象层,并且被配置为根据后端应用的数据模型执行任何形式的改变、读取、更新和删除操作。
如所示出的,利用对JAS服务器的基于servlet的调用(例如,204和206),该解决方案支持表单服务请求(参见表单服务请求处理器212)、令牌服务请求(参见令牌服务请求处理器214)和媒体对象服务请求(参见媒体对象请求处理器216)。服务代理是可扩展的,并且在这种需求出现时支持添加持续的、正在进行的开发和功能。
另外的划分是合理的。例如,服务代理可以从外部系统202(例如,外部系统2021、外部系统2022,等等)接收数据(例如,对应于原生应用的表单字段的数据)并且在原生系统上处理那个数据,就好像数据是本地接收的(例如,接收对应于原生应用的表单字段的数据)。这种操作可以利用本文公开的表单服务的实施例来实现,以便从外部系统执行面向表单的操作,并且这种划分在以下图3中给出。
图3描绘了服务代理的划分300。作为选项,划分300或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,划分300或其任何方面可以在任何期望的环境中实现。
如在前面的讨论中提到的,服务代理可以被扩展或增强,以消费前所未有的众多业务服务请求。这种增强可以包括简单对象访问协议–SOAP(例如,参见SOAP请求308)的全部或部分的实现,和/或这种增强可以包括表述性状态转移抽象–REST(参见REST请求310)的全部或部分或未来协议312的实现,使得外部系统可以利用这些协议当中任意一种(或任意组合)与服务代理接口。
除了充当所示应用与其它当前和潜在外部系统之间的抽象层,服务代理还可以被启用以提供会话管理、高速缓存、批请求的支持、以及安全性改进。由抽象层302提供的功能的处理的一些方面可以涉及由后端系统进行的处理。例如,servlet调用314可能导致Java服务器发起表单服务请求(参见操作320)。或者,例如,SOAP调用316可能发起可扩展逻辑中的处理(参见操作3241和操作3242)。
图4A绘出了当利用用于自动合成原生移动应用的合成工具时指定对象模型的样例层次结构4A00。作为选项,层次结构4A00或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,层次结构4A00或其任何方面可以在任何期望的环境中实现。
如上面所提到的,用于指定的应用的表单集可以是已知的(例如,基于约定)。另外,如果表单是已知的,则字段可以是已知的。并且,给定字段集,对应操作的集合可以是已知的,并且给定字段集,向后端应用携带字段数据和从后端应用携带字段数据的消息集也可以是已知的。在许多情况下,仅一些字段需要被移动应用处理(例如,仅字段和/或对应操作的子集需要由后端应用支持)。
如所示出的,对象模型层次结构可以被组织成包括应用(例如,参见应用集420)的一个或多个实例,这些应用包含多个函数(参见函数集430),这些函数通过字段(参见字段集440)与用户交互,并且字段可以与操作(参见操作集445)具有一对一或一对多的关系。任何应用或函数或字段都能发出消息(参见消息450)。其它层次结构是可能的,并且一些组织不是严格分层的。
图4B绘出了根据一个实施例的取自用于自动合成原生移动应用的合成工具所使用的对象模型的表单和消息。表单和消息说明了表单、表单字段和表单元数据402之间的映射关系。所示出的映射关系或其任何方面可以在任何期望的环境中实现。
映射关系4B00(例如,如从对象模型可取得的)可以定义表单与操作的任何实例和/或表单元数据4041至4045之间的任意数量的关系404。表单元数据可以使用任何已知的技术(例如,利用XML、利用BNF,等等)编码。严格地作为说明性实例,表单元数据4041至4045可以由与相应表单部件(例如,函数、操作、字段、网格、按钮,等等)对应的XML元素组成。表单元数据可以描述表单和/或其部件的结构和任何其它方面。
如所示出的,关系4041将表单映射到XML元素4141。操作406可以具有字段的任意数量的关联实例。关系4043将操作406映射到XML元素4142。XML元素4142可以包括任意数量的各种属性(例如,类型,等等)。关系4042可以将字段框408中给出的字段映射到XML元素4143。XML元素4143可以包括任意数量的各种属性(例如,id、标签、数据类型,等等)。关系4054可以将字段标签410(例如,市,等等)映射到XML属性4161(例如,标签,等等)。关系4044可以利用所示出的XML字段元素4144将字段值412映射到XML属性4162(例如,数据类型,等等)。
前述仅仅是一种实现,并且其它实施例可以直接以JSON格式而不是XML格式产生映射。在一些情况下,关系404包括利用对象模型到/来自操作406的映射,或者数据结构或硬编码的映射。运行时过程识别正在运行的表单(例如,经由表单标识符,或经由引用)并且,基于识别出的表单中使用的部件(例如,日期字段、下拉框,网格行,等等),产生那个表单的JSON表示。
关于使用JSON表示的一般方法的更多细节在标题为“RULE-BASEDAUTOMATICCLASSGENERATIONFROMAJSONMESSAGE”的美国申请No.14/179,548(代理人案号:ORA140360-US-NP)中描述。
图5给出了基于应用对象模型自动合成原生移动应用所产生的操作流程500。作为选项,操作流程500或其任何方面的一个或多个实例可以在本文描述的实施例的架构和功能的上下文中实现。而且,操作流程500或其任何方面可以在任何期望的环境中实现。
在图5的流程中,合成器模块110被给予后端应用的标识(参见操作520)。该应用使用可以由对象模型确定的表单集(参见操作530)。如上面所提到的,只有一些字段需要由移动应用进行处理。字段可以明确地由字段名称指定,或者可以隐含地由从其提取函数的应用的规范表示,或者可以隐含地由函数集的规范指定(参见操作540)。在一些情况下,选定函数的选择和/或定义然后用来指定(例如,隐含地)要使用的字段(参见操作550)。当所需的字段和/或函数是已知的时候,对应消息的集合可以是已知的。现在移动设备应用的结构是已知的,并且代码可以被映射到原生移动应用代码模块的储存库和从原生移动应用代码模块的储存库中选择(参见操作560)。此类原生移动应用代码模块利用上面提到的技术被组装(参见操作570),并且移动应用代码模块代码连同所生成的代码(例如,从类生成器发出的代码)和/或任何其它代码(例如,合成的代码)可以在移动终端上执行(例如,参见操作580),并且可以执行测试(参见操作570)。
其它流程是可能的。例如,当合成器用户定义UI布局、将控件绑定到数据控制器并定义页面导航时,一个流程开始。当合成器用户基于数据控制类自动生成数据控件,其后数据控件自动保持与数据控制类同步时,另一个流程开始。当合成器用户编码使用应用执行业务逻辑所需的属性和功能的接口规则时,又一个流程开始。接口规则用来存储属性并经由服务代理调用对应的后端应用,以执行用于移动应用的必要业务逻辑。
在一些情况下,合成器用户的工作流程包括修改正被移动应用使用的底层后端应用,以满足定制需求。
结果生成的移动应用支持一系列使用模型,例如,给定“通过搜索类型‘C’为客户搜索地址簿”的用例。初始操作可以是响应于用户动作(例如,在用户将“C”输入到UI文本框的情况下)。下一个操作可以包括系统响应,其中基于开发人员已经在数据控件与UI的文本控件之间设置的绑定通过数据控件传递数据。系统响应还可以包括操作,其中数据控制模块调用数据控制对象的设置器来设置其搜索属性。这种响应可以基于数据控件与数据控制类之间的系统生成的绑定。
在另一种情况下,所生成的移动应用支持在用户点击搜索按钮的用户动作时开始的使用模式,并且系统通过基于开发人员已经建立的绑定自动执行数据控制类的搜索方法来响应。例如,数据控制类可以将参数(搜索类型、令牌、要调用的E1表单,等等)加载到JSON消息中,然后串行化JSON消息并对服务代理作出请求。服务代理监视请求并转发到JAS服务器上,然后JAS服务器运行或调用该应用。
另一个流程基于被给定以用于执行的参数创建表单及其数据的JSON数据表示,然后将数据返回到服务代理。服务代理将数据传递回移动应用,于是移动应用将数据解串成支持性预生成Java对象。支持性JSONJava对象经由数据控制类被绑定到数据控件,从而方便数据控制器能够基于绑定将数据传递到UI控件。
本公开内容的另外的实施例
另外的实际应用例
图6是根据一些实施例的用于基于应用对象模型自动合成原生移动应用的系统的框图。系统600或其中的任何操作可以在任何期望的环境中执行。系统600包括至少一个处理器和至少一个存储器,存储器用来存储与系统的操作对应的程序指令。如所示出的,操作可以全部或部分地利用可由模块访问的程序指令来实现。模块连接到通信路径605,并且任何操作都可以经通信路径605与其它操作通信。系统的模块可以单独地或组合地在系统600中执行方法操作。除非在权利要求中指定,否则在系统600中执行的任何操作可以按任何次序执行。图6的实施例实现了计算机系统(示为系统600)的一部分,该计算机系统包括执行一组程序代码指令的计算机处理器(见模块610)和用于对保持程序代码指令的存储器进行存取以执行以下操作的模块:从规范模块接收移动设备标识符,以及包括应用标识符、对象模型和表单标识符当中至少一种的列表(参见模块620);分析该信息,以确定要在移动设备上实现的至少一个表单并且分析该表单,以确定要在移动设备上实现的函数集(参见模块630);从原生应用代码模块的储存库中检索与该函数集的至少一部分对应的至少一个选定原生应用代码模块(参见模块640);以及组装至少包括选定的原生应用代码模块的移动设备应用并且至少部分地基于规范(参见模块650)。
系统架构概述
另外的系统架构例
图7绘出了适于实现本公开内容的实施例的计算机系统700的实例的框图。计算机系统700包括总线706或用于传送信息的其它通信机构,该机构互连子系统和设备,诸如处理器707、系统存储器(例如,主存储器708,或随机存取存储器RAM的区域)、静态存储设备(例如,ROM709)、存储设备710(例如,磁或光)、数据接口733、通信接口714(例如,调制解调器或以太网卡)、显示器711(例如,CRT或LCD)、输入设备712(例如,键盘、光标控制)、以及外部数据储存库731。
根据本公开内容的一个实施例,计算机系统700通过执行包含在系统存储器中的一个或多个指令的一个或多个序列的处理器707来执行具体操作。这种指令可以从另一计算机可读/可用介质(诸如静态存储设备或盘驱动器)读入系统存储器。在替代实施例中,硬连线的电路可代替软件指令或与其结合使用,以实现本公开内容。因此,本公开内容的实施例不限于硬件电路和/或软件的任何具体组合。在一个实施例中,术语“逻辑”应当指的是用来实现本公开内容的全部或部分的软件或硬件的任意组合。
如本文所使用的,术语“计算机可读介质”或“计算机可用介质”是指参与向处理器707提供指令供执行的任何介质。这种介质可以采取许多形式,包括但不限于,非易失性介质和易失性介质。非易失性介质包括例如光或磁盘,诸如磁盘驱动器或磁带驱动器。易失性介质包括动态存储器,诸如RAM存储器。
计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带,或任何其它磁介质;CD-ROM或任何其它光学介质;穿孔卡片、纸带,或具有孔图案的任何其它物理介质;RAM、PROM、EPROM、FLASH-EPROM,或任何其它存储器芯片或盒,或者计算机可以从其读取数据的任何其它非暂态介质。
在本公开内容的实施例中,为了实践本公开内容的指令序列的执行是由计算机系统700的单个实例执行的。根据本公开内容的某些实施例,通过通信链路715(例如,LAN、PTSN,或无线网络)耦接的计算机系统700的两个或更多个实例可以彼此协调地执行实践本公开内容所需的指令序列。
计算机系统700可以通过通信链路715和通信接口714发送和接收消息、数据和包括程序(例如,应用代码)的指令。接收到的程序代码可以在其被接收到时由处理器707执行和/或存储在存储设备710或任何其它非易失性储存器中,供以后执行。计算机系统700可以通过数据接口733向外部数据储存库731上的数据库732通信。数据库732中的数据项可以利用主键(例如,关系数据库主键)来访问。如本文所使用的,模块可以利用系统存储器的任何部分与任意程度的硬连线电路(包括体现为处理器707的硬接线电路)的任意混合来实现。
在前面的说明书中,本公开内容已参考其具体实施例进行了描述。但是清楚的是,在不背离本公开内容的更宽精神和范围的情况下,可以对其进行各种修改和改变。例如,上述过程流是参考过程动作的特定次序描述的。但是,所描述的过程动作当中许多动作的次序可以在不影响本公开内容的范围或操作的情况下改变。本说明书和附图相应地应当在说明性的意义上而不是限制性的意义上看待。
Claims (15)
1.一种方法,包括:
接收移动设备标识符和包括应用标识符、对象模型和表单标识符当中至少一种的信息;
分析该信息,以确定要在移动设备上实现的至少一个表单;
分析该表单,以确定要在移动设备上实现的函数集;
从原生应用代码模块的储存库中检索与该函数集的至少一部分对应的多个选定原生应用代码模块;及
组装包括该表单的至少一部分和所述选定原生应用代码模块当中至少一些的移动应用。
2.如权利要求1所述的方法,其中对象模型包括字段、函数和消息当中至少一种。
3.如权利要求1所述的方法,其中所述选定原生应用代码模块用来发起创建操作、替换操作、更新操作和删除操作当中至少一种。
4.如权利要求1所述的方法,还包括将移动应用部署到与移动设备标识符对应的移动设备上。
5.如权利要求1所述的方法,还包括根据JSON消息生成Java类。
6.如权利要求1所述的方法,其中所述选定原生应用代码模块当中至少一个实现形成请求消息。
7.如权利要求6所述的方法,其中请求消息包括简单对象访问协议(SOAP)请求。
8.如权利要求6所述的方法,其中请求消息包括表述性状态转移抽象(REST)请求。
9.如权利要求6所述的方法,其中请求消息包括密码。
10.如权利要求6所述的方法,其中请求消息包括图像捕获文件。
11.如权利要求1-10中任何一项所述的方法,被实现为体现在非暂态计算机可读介质中的计算机程序产品,该计算机可读介质存储有用于执行过程的指令序列。
12.一种系统,包括:
合成器模块,接收移动设备标识符和包括应用标识符、对象模型和表单标识符当中至少一种的信息;
解析器模块,分析该信息,以确定要在移动设备上实现的至少一个表单,并且分析该表单,以确定要在移动设备上实现的函数集;
查询生成器,从原生应用代码模块的储存库中检索与该函数集的至少一部分对应的多个选定原生应用代码模块;及
代码集成模块,组装包括该表单的至少一部分和所述选定原生应用代码模块当中至少一些的移动应用。
13.如权利要求12所述的系统,其中对象模型包括字段、函数和消息当中至少一种。
14.如权利要求12所述的系统,其中所述选定原生应用代码模块用来发起创建操作、替换操作、更新操作和删除操作当中至少一种。
15.如权利要求12所述的系统,还包括将移动应用部署到与移动设备标识符对应的移动设备上。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361880830P | 2013-09-20 | 2013-09-20 | |
US201361880828P | 2013-09-20 | 2013-09-20 | |
US61/880,830 | 2013-09-20 | ||
US61/880,828 | 2013-09-20 | ||
US14/463,179 US10127023B2 (en) | 2013-09-20 | 2014-08-19 | Computer-aided development of native mobile application code |
US14/463,179 | 2014-08-19 | ||
PCT/US2014/056677 WO2015042479A1 (en) | 2013-09-20 | 2014-09-19 | Computer-aided development of native mobile application code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105637478A true CN105637478A (zh) | 2016-06-01 |
CN105637478B CN105637478B (zh) | 2020-07-07 |
Family
ID=52689480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480057398.0A Active CN105637478B (zh) | 2013-09-20 | 2014-09-19 | 原生移动应用代码的计算机辅助开发 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10127023B2 (zh) |
EP (1) | EP3047372B1 (zh) |
JP (1) | JP6599313B2 (zh) |
CN (1) | CN105637478B (zh) |
WO (1) | WO2015042479A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107508846A (zh) * | 2016-06-14 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 应用客户端的更新方法和系统及终端设备 |
CN108595160A (zh) * | 2018-05-16 | 2018-09-28 | 福建天泉教育科技有限公司 | Js调用原生对象的方法、存储介质 |
CN110647666A (zh) * | 2019-09-03 | 2020-01-03 | 平安科技(深圳)有限公司 | 模板与公式的智能匹配方法、装置及计算机可读存储介质 |
CN111104123A (zh) * | 2018-10-09 | 2020-05-05 | 甲骨文国际公司 | 应用程序的自动部署 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150242597A1 (en) * | 2014-02-24 | 2015-08-27 | Google Inc. | Transferring authorization from an authenticated device to an unauthenticated device |
US9513941B2 (en) | 2014-09-17 | 2016-12-06 | International Business Machines Corporation | Codeless generation of APIs |
US20160196117A1 (en) * | 2015-01-05 | 2016-07-07 | Queue Software Inc. | System and method for graphical application development |
US9886246B2 (en) * | 2015-07-13 | 2018-02-06 | International Business Machines Corporation | Dynamically building mobile applications |
CN105573764B (zh) * | 2015-12-24 | 2019-03-22 | 北京大学 | 一种面向智能手表的Android应用重构方法 |
US10423394B2 (en) * | 2016-04-11 | 2019-09-24 | Facebook, Inc. | Systems and methods for mobile application prototyping using loops |
CN110233818B (zh) * | 2018-03-19 | 2023-05-12 | 财付通支付科技有限公司 | 测试数据报文异常的方法、装置和计算机可读存储介质 |
JP6508407B1 (ja) | 2018-12-05 | 2019-05-08 | 富士通クライアントコンピューティング株式会社 | 電子機器用スタンド |
FI128506B (en) * | 2019-01-28 | 2020-06-30 | Elisa Oyj | Automatic network deployment |
CN111580883B (zh) * | 2020-04-30 | 2024-04-12 | 中国工商银行股份有限公司 | 应用程序启动方法、装置、计算机系统和介质 |
CN113204393B (zh) * | 2021-04-25 | 2024-08-27 | 随锐科技集团股份有限公司 | 原生与js交互的消息处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271085A1 (en) * | 2006-05-19 | 2007-11-22 | Louenas Hamdi | Emulation of an interactive electronic form |
US20090193393A1 (en) * | 2008-01-30 | 2009-07-30 | International Business Machines Corporation | Automatically generating rest clients from rest resources |
CN101661512A (zh) * | 2009-09-25 | 2010-03-03 | 万斌 | 一种识别传统表单信息并创建对应Web表单的系统及方法 |
US20110177803A1 (en) * | 2005-03-16 | 2011-07-21 | Oracle America, Inc. | Card device for loading applications to a mobile device |
US8261231B1 (en) * | 2011-04-06 | 2012-09-04 | Media Direct, Inc. | Systems and methods for a mobile application development and development platform |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069157A1 (en) | 2000-09-15 | 2002-06-06 | Jordan Michael S. | Exchange fusion |
US20030115548A1 (en) | 2001-12-14 | 2003-06-19 | International Business Machines Corporation | Generating class library to represent messages described in a structured language schema |
US20060075070A1 (en) * | 2002-04-02 | 2006-04-06 | Patrick Merissert-Coffinieres | Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture |
US7278057B2 (en) | 2003-07-31 | 2007-10-02 | International Business Machines Corporation | Automated hang detection in Java thread dumps |
US20060085824A1 (en) | 2004-10-14 | 2006-04-20 | Timo Bruck | Method and appartus for management of video on demand client device |
US7793255B1 (en) | 2005-03-01 | 2010-09-07 | Oracle America, Inc. | System and method for maintaining alternate object views |
US20060277231A1 (en) * | 2005-06-06 | 2006-12-07 | Javaground Usa, Inc. | Integrated software development and porting system for wireless devices |
KR100746031B1 (ko) | 2006-01-10 | 2007-08-06 | 삼성전자주식회사 | 홈 네트워크 시뮬레이션 시스템 및 방법 |
US8935762B2 (en) | 2007-06-26 | 2015-01-13 | G3-Vision Limited | Authentication system and method |
US8762977B2 (en) | 2008-04-10 | 2014-06-24 | Telefonaktiebolaget L M Ericsson (Publ) | Mobile device software management method and apparatus |
WO2009139869A1 (en) | 2008-05-13 | 2009-11-19 | Tirk Eric E | Device and method for distributing and monetizing host applications |
US8364123B2 (en) | 2009-02-25 | 2013-01-29 | Apple Inc. | Managing notification messages |
US7933221B1 (en) | 2008-08-21 | 2011-04-26 | Sprint Communications Company L.P. | Regulating dataflow between a mobile device and a wireless telecommunications network |
US8806506B2 (en) | 2008-09-30 | 2014-08-12 | Ebay Inc. | System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture |
CA2773153A1 (en) | 2009-09-04 | 2011-03-10 | Redknee Inc. | Data broker method, apparatus and system |
US20120036494A1 (en) * | 2010-08-06 | 2012-02-09 | Genwi, Inc. | Web-based cross-platform wireless device application creation and management systems, and methods therefor |
US8479154B1 (en) * | 2010-08-20 | 2013-07-02 | Google Inc. | Interaction with partially constructed mobile device applications |
CN102143200B (zh) * | 2010-10-20 | 2013-09-11 | 华为技术有限公司 | 一种soap api转换为rest api的公共消息头承载方法及装置 |
US9424052B2 (en) | 2011-03-21 | 2016-08-23 | Amazon Technologies, Inc. | Remotely emulating computing devices |
US20130110547A1 (en) | 2011-04-07 | 2013-05-02 | Master Mobile Products, Llc | Medical software application and medical communication services software application |
US20130019314A1 (en) | 2011-07-14 | 2013-01-17 | International Business Machines Corporation | Interactive virtual patching using a web application server firewall |
EP2823448A4 (en) | 2012-03-09 | 2015-12-09 | Mastercard International Inc | SYSTEMS, METHODS AND COMPUTER READABLE MEDIA FOR CARRYING OUT AN ELECTRONIC TRANSACTION VIA A BACKEND SERVER SYSTEM |
US8656353B2 (en) | 2012-03-09 | 2014-02-18 | User-Friendly Phone Book, L.L.C. | Mobile application generator |
US9280327B2 (en) * | 2012-09-07 | 2016-03-08 | NIIT Technologies Ltd | Simplifying development of user interfaces of applications |
US20140281886A1 (en) * | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using website content |
US20140282371A1 (en) * | 2013-03-14 | 2014-09-18 | Media Direct, Inc. | Systems and methods for creating or updating an application using a pre-existing application |
US10331765B2 (en) * | 2013-05-24 | 2019-06-25 | Sourcecode Technology Holdings, Inc. | Methods and apparatus for translating forms to native mobile applications |
CN104216691B (zh) * | 2013-05-31 | 2017-11-17 | 华为技术有限公司 | 一种创建应用的方法及装置 |
US9723487B2 (en) * | 2013-08-19 | 2017-08-01 | American Megatrends, Inc. | Mobile device security system |
-
2014
- 2014-08-19 US US14/463,179 patent/US10127023B2/en active Active
- 2014-09-19 CN CN201480057398.0A patent/CN105637478B/zh active Active
- 2014-09-19 JP JP2016515486A patent/JP6599313B2/ja active Active
- 2014-09-19 EP EP14845448.1A patent/EP3047372B1/en active Active
- 2014-09-19 WO PCT/US2014/056677 patent/WO2015042479A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110177803A1 (en) * | 2005-03-16 | 2011-07-21 | Oracle America, Inc. | Card device for loading applications to a mobile device |
US20070271085A1 (en) * | 2006-05-19 | 2007-11-22 | Louenas Hamdi | Emulation of an interactive electronic form |
US20090193393A1 (en) * | 2008-01-30 | 2009-07-30 | International Business Machines Corporation | Automatically generating rest clients from rest resources |
CN101661512A (zh) * | 2009-09-25 | 2010-03-03 | 万斌 | 一种识别传统表单信息并创建对应Web表单的系统及方法 |
US8261231B1 (en) * | 2011-04-06 | 2012-09-04 | Media Direct, Inc. | Systems and methods for a mobile application development and development platform |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107508846A (zh) * | 2016-06-14 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 应用客户端的更新方法和系统及终端设备 |
CN108595160A (zh) * | 2018-05-16 | 2018-09-28 | 福建天泉教育科技有限公司 | Js调用原生对象的方法、存储介质 |
CN111104123A (zh) * | 2018-10-09 | 2020-05-05 | 甲骨文国际公司 | 应用程序的自动部署 |
CN110647666A (zh) * | 2019-09-03 | 2020-01-03 | 平安科技(深圳)有限公司 | 模板与公式的智能匹配方法、装置及计算机可读存储介质 |
CN110647666B (zh) * | 2019-09-03 | 2023-12-19 | 平安科技(深圳)有限公司 | 模板与公式的智能匹配方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3047372A1 (en) | 2016-07-27 |
WO2015042479A1 (en) | 2015-03-26 |
JP6599313B2 (ja) | 2019-10-30 |
EP3047372B1 (en) | 2023-05-24 |
US20150089469A1 (en) | 2015-03-26 |
US10127023B2 (en) | 2018-11-13 |
CN105637478B (zh) | 2020-07-07 |
EP3047372A4 (en) | 2016-09-07 |
JP2016534419A (ja) | 2016-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105637478A (zh) | 原生移动应用代码的计算机辅助开发 | |
US10379710B2 (en) | Modeling system for graphic user interface | |
CN114035773B (zh) | 一种基于配置的低代码开发表单方法、系统及装置 | |
Canfora et al. | A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures | |
CN110825362A (zh) | 低代码应用软件开发系统及方法 | |
US20110113090A1 (en) | Dynamic mobile client | |
CN110908712A (zh) | 移动端跨平台的数据处理方法和设备 | |
CN101902756A (zh) | M2m业务平台及其工作方法 | |
CN106068521A (zh) | 关于合规策略更新的应用的通信状态 | |
US20150089470A1 (en) | Rule-based automatic class generation from a json message | |
CN107728999A (zh) | 一种App、小程序接口模拟的方法和系统 | |
CN112256321A (zh) | 静态库打包方法、装置、计算机设备和存储介质 | |
CN106663090A (zh) | 在编译期间将呈现元数据转换成浏览器可渲染格式 | |
Lachgar et al. | Modeling and generating native code for cross-platform mobile applications using DSL | |
Bergenti et al. | A Comparison between Asynchronous Backtracking Pseudocode and its JADEL Implementation. | |
CN104221002B (zh) | 用于实现到web服务的公用数据接口的方法和系统 | |
CN106462415A (zh) | 访问开发系统中的语义内容 | |
Ciatto et al. | TuSoW: Tuple spaces for edge computing | |
CN104156209B (zh) | 跨平台应用界面建模方法及装置 | |
CN113626016A (zh) | 一种基于Vue+Element UI+Koa2的前后端分离的可重用组件 | |
CN101676905A (zh) | 基于用户定制的规则修改资源内容的布局 | |
CN113342399A (zh) | 应用项目的结构配置方法、装置及可读存储介质 | |
CN109240839A (zh) | 一种独立业务架构 | |
CN116301821A (zh) | 一种元数据文件的生成方法及设备 | |
de Oliveira Coelho et al. | Mobile Applications to a Pervasive World |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |