CN103473072A - 一种移动云计算应用程序开发方法 - Google Patents
一种移动云计算应用程序开发方法 Download PDFInfo
- Publication number
- CN103473072A CN103473072A CN2013104390399A CN201310439039A CN103473072A CN 103473072 A CN103473072 A CN 103473072A CN 2013104390399 A CN2013104390399 A CN 2013104390399A CN 201310439039 A CN201310439039 A CN 201310439039A CN 103473072 A CN103473072 A CN 103473072A
- Authority
- CN
- China
- Prior art keywords
- cloud computing
- code
- clouds
- mobile
- application program
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种移动云计算应用程序开发方法,在开发移动云计算应用程序时,只使用移动平台和云端共有的编程接口来编写需要迁移到云端以利用云计算技术的代码;如果需要迁移到云端以利用云计算技术的代码使用了移动平台独有的编程接口,则云端的编译器在编译代码时给出错误提示;反之,如果使用了云端独有的编程接口,则移动平台的编译器在编译代码时给出错误提示。通过本发明所提供的方法,移动云计算应用程序的开发和运行不再需要修改操作系统,而且能够支持不同移动平台的移动云计算应用程序的开发。使用本发明所提供的方法开发出来的移动云计算应用程序能够利用云计算技术提升运行速度并降低电量消耗。
Description
技术领域
本发明提供一种移动云计算应用程序的开发方法,具体涉及一种开发适用于移动设备并能使用云计算技术的应用程序的方法,属于移动计算、云计算和软件工程领域。
背景技术
Eduardo Cuervo等人提出的MAUI系统利用Windows Mobile平台的托管代码执行环境,提供了细粒度的代码迁移解决方案,以支持移动云计算应用程序。MAUI系统存在的问题是依赖于Windows Mobile平台的托管代码执行环境,只支持基于Windows Mobile平台的应用程序。
Byung-Gon Chun等人提出的CloneCloud系统能将移动设备的完整运行状态克隆到运行在云端的虚拟机中,同时动态地迁移移动设备上的应用程序到云端执行,使应用程序能够利用云计算技术。CloneCloud系统存在的问题是需要深度修改、定制Android操作系统,只支持基于Android平台的应用程序。
Mark S.Gordon等人提出的COMET系统在Android操作系统的Dalvik虚拟机上实现了分布式共享内存技术,允许运行中的应用程序的线程在移动设备和云端之间自由迁移,从而支持移动云计算应用程序。COMET系统存在的问题同样是需要深度修改、定制Android操作系统,只支持基于Android平台的应用程序。
发明内容
本文中,移动云计算应用程序,指的是适用于移动设备并能使用云计算技术的应用程序。移动平台,指的是运行在移动设备上的操作系统、中间件等支撑应用程序运行的平台。
本发明的目的是提供一种通用的移动云计算应用程序开发方法,用以解决移动云计算应用程序在开发和运行时需要修改操作系统及只支持某个特定的移动平台的问题。
本发明提供的技术方案如下:
一种移动云计算应用程序开发方法,其特征是,在开发移动云计算应用程序时,只使用移动平台和云端共有的编程接口来编写需要迁移到云端以利用云计算技术的代码,这样代码就能同时部署到移动设备和云端,从而在无需修改操作系统和不依赖特定移动平台的前提下实现对应用程序的云计算支持;如果需要迁移到云端以利用云计算技术的代码使用了移动平台独有的编程接口,则云端的编译器在编译代码时给出错误提示,反之,如果使用了云端独有的编程接口,则移动平台的编译器在编译代码时给出错误提示;根据提示,对发生错误的代码进行重构,使之使用移动平台和云端共有的编程接口来实现功能。
所述的移动云计算应用程序开发方法,其特征是,开发全新的移动云计算应用程序时,执行如下步骤:
A1.选定移动平台和对应的云端运行环境,指定需要迁移到云端以利用云计算技术的代码名称,使用代码生成工具生成移动平台和云端的代码框架;
A2.基于步骤A1中生成的代码框架开发移动云计算应用程序和云端与其对应的云计算服务提供程序,需要迁移到云端以利用云计算技术的代码在两个程序的开发过程中保持同步;
A3.编译生成步骤A2中开发的两个程序,将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
所述的移动云计算应用程序开发方法,其特征是,将现有的移动平台应用程序重构成移动云计算应用程序时,执行如下步骤:
B1.选定移动平台和对应的云端运行环境,指定需要迁移到云端以利用云计算技术的代码名称,使用代码分析工具对现有的移动平台应用程序的代码进行分析;
B2.根据步骤B1中代码分析工具的提示,修改现有的移动平台应用程序的代码,确保需要迁移到云端以利用云计算技术的代码只使用移动平台和云端共有的编程接口;
B3.指定与步骤B1中相同的移动平台和对应的云端运行环境,以及需要迁移到云端以利用云计算技术的代码名称,使用代码生成工具生成移动平台和云端的代码框架;
B4.将移动平台的代码框架添加到步骤B2中修改后的移动平台应用程序的代码中,重构为移动云计算应用程序,将需要迁移到云端以利用云计算技术的代码添加到云端的代码框架中,重构为云计算服务提供程序;
B5.编译生成步骤B4中重构后的两个程序,将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
所述的移动云计算应用程序开发方法,其特征是,所述代码实现计算密集型的功能,代码名称包括包名、类名、方法名等。
通过本发明所提供的方法,移动云计算应用程序的开发和运行不再需要修改操作系统,而且能够支持不同移动平台的移动云计算应用程序的开发。使用本发明所提供的方法开发出来的移动云计算应用程序能够利用云计算技术提升运行速度并降低电量消耗。
附图说明
图1是开发全新的移动云计算应用程序的方法流程图。
图2是将现有的移动平台应用程序重构成移动云计算应用程序的方法流程图。
具体实施方式
本发明的具体实施方式如下:
A.开发全新的移动云计算应用程序,具体实施方式为(流程参图1):
A1.选定移动平台和对应的云端运行环境,例如:iOS和Cocoa,Android和Java运行时环境,WindowsPhone和.NET框架等。指定需要迁移到云端以利用云计算技术的代码名称(例如包名、类名、方法名等),这类代码通常是计算密集型的,以充分利用云计算技术进行加速。使用代码生成工具生成移动平台和云端的代码框架,其中代码生成工具的功能是根据指定的配置由相应的模版生成代码框架,代码框架中包含支持移动云计算应用程序和云计算服务提供程序运行的相关代码;
A2.基于步骤A1中生成的代码框架开发移动云计算应用程序和云端与其对应的云计算服务提供程序,需要迁移到云端以利用云计算技术的代码在两个程序的开发过程中保持同步。开发过程中代码同步的方式可以利用操作系统提供的文件链接机制。需要迁移到云端以利用云计算技术的代码在编写的过程中只能使用移动平台和云端共有的编程接口;
A3.编译生成步骤A2中开发的两个程序。如果需要迁移到云端以利用云计算技术的代码在编写的过程中使用了非移动平台和云端共有的编程接口,则编译过程会报错,可以采用类似步骤B1和B2中实施的方法来消除错误。编译生成成功后将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
B.将现有的移动平台应用程序重构成移动云计算应用程序,具体实施方式如下(流程参见图2):
B1.选定移动平台和对应的云端运行环境,例如:iOS和Cocoa,Android和Java运行时环境,WindowsPhone和.NET框架等。指定需要迁移到云端以利用云计算技术的代码名称,这类代码通常是计算密集型的,以充分利用云计算技术进行加速。使用代码分析工具对现有的移动平台应用程序的代码进行分析。其中,代码分析工具可以基于语法分析器自动生成工具实现,例如:Yacc,Bison,ANTLR等。代码分析工具的功能是对程序的代码进行静态分析,并提供分析结果,指出需要迁移到云端以利用云计算技术的代码在何处使用了非移动平台和云端共有的编程接口;
B2.根据步骤B1中的分析结果,修改现有的移动平台应用程序的代码,修改的方式通常是将具体计算和对移动设备状态的操作之间的耦合解除。修改之后确保需要迁移到云端以利用云计算技术的代码只使用移动平台和云端共有的编程接口;
B3.指定与步骤B1中相同的移动平台和对应的云端运行环境,以及需要迁移到云端以利用云计算技术的代码名称,使用代码生成工具生成移动平台和云端的代码框架,代码框架中包含对移动云计算应用程序和云计算服务提供程序的运行提供支持的相关代码;
B4.将移动平台的代码框架添加到步骤B2中修改后的移动平台应用程序的代码里,重构为移动云计算应用程序,将需要迁移到云端以利用云计算技术的代码添加到步骤B3中生成的云端的代码框架里,重构为云计算服务提供程序;
B5.编译生成步骤B4中重构后的两个程序,将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
实施例1:
现有一个Android平台的五子棋游戏应用程序fivestones,要将其重构成移动云计算应用程序,具体实施方式如下(流程参见图2):
1.选定移动平台为Android,对应的云端运行环境为Java运行时环境。指定需要迁移到云端以利用云计算技术的代码名称为“gomoku.Model”,这是fivestones中用于计算电脑下棋步骤的类的名字,这个类的代码是计算密集型的,适合利用云计算技术进行加速。使用代码分析工具对fivestones的代码进行分析,执行的命令为“analyze.exe-platform Android-projectfivestones-name gomoku.Model”,得到的分析结果为“line39:android.os.AsyncTask”;
2.根据步骤1中的分析结果可知,需要迁移到云端以利用云计算技术的代码在第39行使用了非Android平台和Java运行时环境共有的编程接口“android.os.AsyncTask”。下棋步骤的计算与对移动设备状态的操作(通过编程接口“android.os.AsyncTask”实现)之间存在耦合,具体的解耦合方式是将调用编程接口“android.os.AsyncTask”的相关代码从类“gomoku.Model”中分离出来,分离后的代码之间的联系通过回调的方式实现;
3.与步骤1中相同,指定移动平台为Android,对应的云端运行环境为Java运行时环境,需要迁移到云端以利用云计算技术的代码名称为“gomoku.Model”。使用代码生成工具生成移动平台和云端的代码框架,执行的命令为“generate.exe-platform Android-project fivestones-name gomoku.Model”。
生成的移动平台代码框架包括:
Client.java 移动设备端的运行支持代码
Execution.java 需要迁移到云端以利用云计算技术的代码接口
ExecutionDelegate.java 实现解耦合的回调代码接口
生成的云端代码框架包括:
Execution.java 需要迁移到云端以利用云计算技术的代码接口
Server.java 云端的运行支持代码
4.将步骤3中生成的移动平台的代码框架添加到步骤2中修改后的fivestones代码里,重构为移动云计算应用程序。将需要迁移到云端以利用云计算技术的代码(即类“gomoku.Model”)添加到步骤3中生成的云端的代码框架里,重构为云计算服务提供程序;
5.编译生成步骤4中重构后的两个程序,将移动云计算应用程序部署到Android平台的移动设备上,将云计算服务提供程序部署到安装有Java运行时环境的云端。
Claims (4)
1.一种移动云计算应用程序开发方法,其特征是,
在开发移动云计算应用程序时,只使用移动平台和云端共有的编程接口来编写需要迁移到云端以利用云计算技术的代码,这样代码就能同时部署到移动设备和云端,从而在无需修改操作系统和不依赖特定移动平台的前提下实现对应用程序的云计算支持;
如果需要迁移到云端以利用云计算技术的代码使用了移动平台独有的编程接口,则云端的编译器在编译代码时给出错误提示,反之,如果使用了云端独有的编程接口,则移动平台的编译器在编译代码时给出错误提示;根据提示,对发生错误的代码进行重构,使之使用移动平台和云端共有的编程接口来实现功能。
2.如权利要求1所述的移动云计算应用程序开发方法,其特征是,开发全新的移动云计算应用程序时,执行如下步骤:
A1.选定移动平台和对应的云端运行环境,指定需要迁移到云端以利用云计算技术的代码名称,使用代码生成工具生成移动平台和云端的代码框架;
A2.基于步骤A1中生成的代码框架开发移动云计算应用程序和云端与其对应的云计算服务提供程序,需要迁移到云端以利用云计算技术的代码在两个程序的开发过程中保持同步;
A3.编译生成步骤A2中开发的两个程序,将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
3.如权利要求1所述的移动云计算应用程序开发方法,其特征是,将现有的移动平台应用程序重构成移动云计算应用程序时,执行如下步骤:
B1.选定移动平台和对应的云端运行环境,指定需要迁移到云端以利用云计算技术的代码名称,使用代码分析工具对现有的移动平台应用程序的代码进行分析;
B2.根据步骤B1中代码分析工具的提示,修改现有的移动平台应用程序的代码,确保需要迁移到云端以利用云计算技术的代码只使用移动平台和云端共有的编程接口;
B3.指定与步骤B1中相同的移动平台和对应的云端运行环境,以及需要迁移到云端以利用云计算技术的代码名称,使用代码生成工具生成移动平台和云端的代码框架;
B4.将移动平台的代码框架添加到步骤B2中修改后的移动平台应用程序的代码中,重构为移动云计算应用程序,将需要迁移到云端以利用云计算技术的代码添加到云端的代码框架中,重构为云计算服务提供程序;
B5.编译生成步骤B4中重构后的两个程序,将移动云计算应用程序部署到移动设备上,将云计算服务提供程序部署到云端。
4.如权利要求1所述的移动云计算应用程序开发方法,其特征是,所述代码实现计算密集型的功能,代码名称包括包名、类名、方法名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310439039.9A CN103473072B (zh) | 2013-09-24 | 2013-09-24 | 一种移动云计算应用程序开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310439039.9A CN103473072B (zh) | 2013-09-24 | 2013-09-24 | 一种移动云计算应用程序开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473072A true CN103473072A (zh) | 2013-12-25 |
CN103473072B CN103473072B (zh) | 2017-01-25 |
Family
ID=49797944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310439039.9A Active CN103473072B (zh) | 2013-09-24 | 2013-09-24 | 一种移动云计算应用程序开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473072B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731654A (zh) * | 2015-04-03 | 2015-06-24 | 南京大学 | 一种针对安卓应用的迁移重构及支持系统 |
CN104899020A (zh) * | 2015-05-05 | 2015-09-09 | 北京航空航天大学 | 一种集成web技术的CFD程序开发方法 |
CN105786621A (zh) * | 2016-02-29 | 2016-07-20 | 四川理工学院 | 基于云计算的安卓手机应用加速系统及方法 |
CN105786472A (zh) * | 2014-12-26 | 2016-07-20 | 远光软件股份有限公司 | 一种基于ecp平台取数函数设置方法及装置 |
CN107949828A (zh) * | 2015-09-21 | 2018-04-20 | 英特尔公司 | 用于将应用中的机器代码的执行动态地卸载至虚拟机的方法和装置 |
WO2020057265A1 (en) * | 2018-09-17 | 2020-03-26 | Beijing Elex Technology Co., Ltd | Method and system for chat function development, terminal and computer readable storage medium |
CN112394942A (zh) * | 2020-11-24 | 2021-02-23 | 季明 | 基于云计算的分布式软件开发编译方法及软件开发平台 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120011521A1 (en) * | 2010-06-25 | 2012-01-12 | Daniel Knoodle | Novel developer platform |
CN102404395A (zh) * | 2011-11-10 | 2012-04-04 | 浪潮电子信息产业股份有限公司 | 一种基于云计算的移动终端多操作系统切换方法 |
-
2013
- 2013-09-24 CN CN201310439039.9A patent/CN103473072B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120011521A1 (en) * | 2010-06-25 | 2012-01-12 | Daniel Knoodle | Novel developer platform |
CN102404395A (zh) * | 2011-11-10 | 2012-04-04 | 浪潮电子信息产业股份有限公司 | 一种基于云计算的移动终端多操作系统切换方法 |
Non-Patent Citations (2)
Title |
---|
YAO GUO ET AL.: "《Proceeding MobiHeld "11 Proceedings of the 3rd ACM SOSP Workshop on Networking, Systems, and Applications on Mobile Handhelds》", 31 December 2011 * |
孙宇 等: "《四川省通信学会2012年学术年会论文集》", 27 December 2012 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786472A (zh) * | 2014-12-26 | 2016-07-20 | 远光软件股份有限公司 | 一种基于ecp平台取数函数设置方法及装置 |
CN105786472B (zh) * | 2014-12-26 | 2019-05-10 | 远光软件股份有限公司 | 一种基于ecp平台取数函数设置方法及装置 |
CN104731654A (zh) * | 2015-04-03 | 2015-06-24 | 南京大学 | 一种针对安卓应用的迁移重构及支持系统 |
CN104731654B (zh) * | 2015-04-03 | 2018-03-27 | 南京大学 | 一种针对安卓应用的迁移重构及支持系统 |
CN104899020A (zh) * | 2015-05-05 | 2015-09-09 | 北京航空航天大学 | 一种集成web技术的CFD程序开发方法 |
CN107949828A (zh) * | 2015-09-21 | 2018-04-20 | 英特尔公司 | 用于将应用中的机器代码的执行动态地卸载至虚拟机的方法和装置 |
CN107949828B (zh) * | 2015-09-21 | 2022-05-24 | 英特尔公司 | 用于将应用中的机器代码的执行动态地迁移至虚拟机的方法和装置 |
CN105786621A (zh) * | 2016-02-29 | 2016-07-20 | 四川理工学院 | 基于云计算的安卓手机应用加速系统及方法 |
WO2020057265A1 (en) * | 2018-09-17 | 2020-03-26 | Beijing Elex Technology Co., Ltd | Method and system for chat function development, terminal and computer readable storage medium |
CN112394942A (zh) * | 2020-11-24 | 2021-02-23 | 季明 | 基于云计算的分布式软件开发编译方法及软件开发平台 |
CN112394942B (zh) * | 2020-11-24 | 2021-06-04 | 深圳君南信息系统有限公司 | 基于云计算的分布式软件开发编译方法及软件开发平台 |
Also Published As
Publication number | Publication date |
---|---|
CN103473072B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473072A (zh) | 一种移动云计算应用程序开发方法 | |
CN102053836B (zh) | 一种Android应用开发的版本管理工具的实现方法 | |
JP6122493B2 (ja) | 適応的に移植性を有したライブラリ | |
EP2893441B1 (en) | Generating native code from intermediate language code for an application | |
Yamato | Optimum application deployment technology for heterogeneous IaaS cloud | |
CN104035781B (zh) | 一种快速开发异构并行程序的方法 | |
WO2014048215A1 (zh) | 一种应用的开发、编译和调试方法以及装置 | |
JP2017146966A (ja) | パッケージファイルに対する機能拡張方法およびシステム | |
CN102708088A (zh) | 面向海量数据高性能计算的cpu/gpu协同处理方法 | |
CN104090765A (zh) | 一种手机游戏转网页游戏的方法及装置 | |
WO2015014143A1 (en) | Method and apparatus for cross-platform application conversion | |
CN102955698A (zh) | 基于多终端的软件开发的处理方法和装置 | |
Li et al. | Code offload with least context migration in the mobile cloud | |
CN103067501A (zh) | PaaS平台的大数据处理方法 | |
CN103793242A (zh) | 一种基于虚拟计算环境的信息系统快速部署方法 | |
CN103051711B (zh) | 基于spice协议的嵌入式云终端系统的构建方法 | |
Li et al. | Minimizing context migration in mobile code offload | |
CN103150161B (zh) | 基于MapReduce计算模型的任务封装方法及装置 | |
US9141356B2 (en) | Process for generating dynamic type | |
CN113238761A (zh) | 跨平台软件开发方法、装置、电子设备及存储介质 | |
Daubert et al. | A models@ runtime framework for designing and managing service-based applications | |
Kim et al. | Dynamic software updates for parallel high‐performance applications | |
CN103631585A (zh) | 一种用于开发应用程序的方法及系统 | |
Kim et al. | Terra: Imperative-symbolic co-execution of imperative deep learning programs | |
CN103677767A (zh) | 一种处理应用程序的方法、操作系统及电子设备 |
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 |